아이폰어플개발정보2010. 10. 13. 18:31
[아이폰 앱 개발] NSURLConnection을 이용한 웹페이지 내용 가져오는 방법

SURLConnection을 이용하면 간단하게 해당 웹서버의 html, xml등의 내용을 쉽게 가져올 수 있습니다.

1. 연결

connection = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.cocoadev.co.kr/rss]] delegate:self];

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

대상 URL을 인자로 NSURLConnection을 생성합니다. 위는 이 블로그의 rss를 주소로 생성하는 예입니다. delegate는 self로 현제 오브젝트로 지정합니다. delegate로 지정된 오브젝트는 NSURLConnection의 delegate 메소드를 구현하고 메시지를 받을 수 있습니다.

UIApplication의 networkActivityIndicatorVisible을 YES로 하여 데이터 수신 시 좌측과 같이 상단 상태바에 인디케이터가 회전하는 에니메이션으로 사용자에게 데이터 수신중임을 알려줍니다. 기본값은 NO로 되어 있습니다.

2. delegate 메소드 구현
NSURLConnection 생성시 delegate로 지정된 클래스에서는 해당 이벤트 처리 메소드를 구현해야 합니다. 가장 자주 사용되는 delegate 메소드는 데이터 수신, 연결 종료, 오류발생등에 관련된 것들입니다.

1) 데이터 수신 
* connection:didReceiveData:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
   [receiveData appendData:data];
}
데이터가 수신될 때 불려지면 웹서버로 부터 받은 데이터가 NSData 형태로 넘어 옵니다. NSMutableData의 appendData 메소드를 이용하여 수신되는 데이터들을 차례대로 저장합니다.

2) 연결 종료
* connectionDidFinishLoading:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
   NSString *str = [[NSString alloc] initWithData:receiveData 
encoding: NSUTF8StringEncoding];
   NSLog(@"%@", str);
   [str release];

   [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
데이터가 모두 수신되어 웹서버와의 연결이 종료되었을 때 호출됩니다. 이곳에서 원하는 작업을 하거나 다른 오브젝트가 처리하도록 할 수 있습니다. 위는 NSData로 저장된 데이터를 NSString으로 변환하여 출력하는 예입니다. xml이라면 NSXMLParser를 사용하여 데이터를 처리할 수 있습니다.

3) 오류 발생
* connection:didFailWithError:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
   NSLog(@"Connect error: %@", [error localizedDescription]);    

  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
네트워크가 연결되지 않았을 경우등 오류가 발생하였을 때 호출되는 메소드 입니다. 해당 페이지가 없음을 나타내는 404 오류등은 이 메소드가 호출되지 않습니다.
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 14:22
iPhone NSURLConnection 을 이용한 파일 다운로드
NSURLConnection 을 이용하면 웹에 있는 파일을 쉽게 다운로드 할 수 있다.
그래. 쉽다. 그런데 이걸 알기까지는 결코 쉽지 않았다. 에휴..

NSURLConnection 을 쓰기 편하도록 KNURLDownloader 를 만들었다.
사용법은 간단하다.

- (void)start {

NSLog(@"Start Test drived development");

KNURLDownloader*knDownloader = [KNURLDownloadersharedInstance];

[knDownloaderdownload:@"http://211.115.217.70/down/ServicePort.plist"

callbackTarget:self

onComplete:@selector(onDownloadComplete:) 

onError:@selector(onError)];

}


정말 쉽지? 두개의 콜백메서드를 할당해줘야 한다. 한가지는 파일 다운로드가 완료되었을 때 동작할 메소드

다른 한가지는 에러가 발생했을때 동작할 메소드다.


그러니까. 이걸 사용하는 콜러에서는 두개의 메소드가 아래처럼 있음직하다.


- (void)onDownloadComplete:(NSMutableData *)pRcvData {

NSLog(@"onFire downloadcomplete callback function");

KNURLDownloader*knDownloader = [KNURLDownloadersharedInstance];

[knDownloader saveToFile:pRcvData pFileName:@"ServicePort.plist"];

}


- (void)onDownloadError {

NSLog(@"onFire downloaderror callback function");

}


다운로드가 완료되었을 때는 saveToFile 메소드를 이용해서 파일을 저장할 수 있다.

나중에 이 클래스를 계속 업그레이드 하면서 파일저장 메소드가 꽤나 많이 생길 것 같은데..




출처 : http://blog.naver.com/PostView.nhn?blogId=suny4rang&logNo=50082266140
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 24. 14:17
QuickPwn21-1 을 이용한 해킹 방법

★ 준비물

   1. QuickPwn21-1.zip ( 카페 기타자료실 -> 터치자료실 )

      http://mfiles.naver.net/2db8318295cdc9153dd8b98cb6572f55f5ad5fbe82/data36/2008/9/20/145/quickpwn21-1(2).alz

      http://mfiles.naver.net/17820bb8acf3f32f07e283b68c6d156fcf9765840b/data36/2008/9/20/295/quickpwn21-1(2).a00

      http://mfiles.naver.net/16830ab9adf3f22e06e382b78d6c146ece96648506/data30/2008/9/20/278/quickpwn21-1(2).a01

      http://mfiles.naver.net/86139a2c320d0cbd937316201afe87fe540af795/data34/2008/9/20/1/quickpwn21-1(2).a02

   2. Microsoft .NET Framework v3.0

      http://file.naver.com/pc/view.html?fnum=129899&cat=34    <-= x86  ( xp , 32비트 환경)

      http://file.naver.com/pc/view.html?fnum=129900&cat=34    <-= x64  ( 64비트 환경)

   3. 펌웨어 2.1 ( iPod1,1_2.1_5F137_Restore.ipsw ) 검색 하시면 금방 찾을수 있습니다.

      ( iTunes 업데이트시 펌웨어 파일 저장되는 경로 / 도구-> 폴더옵션 -> 보기 -> 숨김 파일 및 파일 표시 선택후

        C:\Documents and Settings\사용자계정\Application Data\Apple Computer\iTunes\iPod Software Updates )

★ 사용환경 :  윈도우 xp sp3 , iTunes 8

★ 실행하기

1. 터치를 2.1 상태로 만들어주세요 ( 아이튠즈 쉬프트 + 복원 2.1 펌웨어 파일선택 )

2. 다운받은 압축파일을 풀고 QuickPwn을 실행하면 다음과 같은 화면이 나옵니다.

    ( 개인적으로 C:\에 푸시는걸 추천드립니다 )

   케이블을 연결하시고 다음 =>

3. 펌웨어 선택하는 화면인데요 (아이튠즈를 통해서 업데이트하셨다면 자동으로 펌웨어를 읽습니다)

    그외 폴더에 있는분은 직접 Browse를 눌러서 펌웨어 파일을 선택해주세요

    사용자 계정이 한글이신분은 펌웨어 파일을 C:\에 복사하신후 복사한 펌웨어 파일을 이용해보세요.

    펌웨어 로딩이 끝나면 다음 =>

4. Cydia/Installer/Boot logo 선택화면이군요. 파인애플을 원하신다면

    Replace boot logos를 선택하시고 다음 =>

5. 케이블 연결되어 있으니 바로 다음으로 넘어가죠 =>

6. 해킹의 50%?를 결정하는 곳이군요. USB 연결 이미지가 뜨고 -> 전원 5초 -> 전원 + 홈키 10초 -> 홈키만 30초

   저의 경우 화면에 뜨는 시간보다 2초정도 지난후 다음으로 넘어갑니다.

  예) Hold down the Home and Power button together for 8 seconds... 일때 홈 + 전원키 누르기

   안되면 또 하고 또 하고 계속 하면 되니 조급해 하지 마시고 하세요

7. DFU 모드 진입이 완료되면 아래의 그림처럼 변하면서 게이지가 ~~~~

8. 드디어 해킹이 완료 되었군요.

    터치화면을 보시면 하드디스크 이미지 모양이 보일겁니다.

    그 후 파인애플 그림과 Flashing NOR 글귀 밑에 게이지가 ~ 보일겁니다.

9. 해킹이 완료되고 터치가 재부팅 되면서 화면에 Cydia와 Installer가 보입니다.

※ 크랙된 어플을 사용하실려면 MobileInstallation 2.1 버젼 (기타자료실-> 터치 일반자료실)

    을 다운받아서 넣어주시길 바랍니다.

    경로는 /System/Library/PrivateFrameworks/MobileInstallation.framework/

    터치 익스플로어나 DiskAid 등을 이용해서 넣어주세요

※ 사용하시는 환경에 따라 에러가 발생하실수 있으니 댓글을 통해서 서로 보완 했으면 좋겠네요.

    ( 기재시 사용하는 OS, 아이튠즈 버젼 )

※ 많이 부족하지만 긴글 읽어주셔서 감사합니다. 즐거운 터치 생활하세요.

 


출처 : http://blog.naver.com/PostView.nhn?blogId=j021004&logNo=50035938996
Posted by 오늘마감

댓글을 달아 주세요