아이폰어플개발정보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. 9. 19. 01:29
아이폰 어플, text파일 생성 및 내용 저장하는 방법

TEXT파일 생성 & 파일에 내용 저장

NSArray* paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString* documentsDirectory = [paths objectAtIndex:0];

NSString* fullFileName = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"log.txt"];

 const char* szFilePath = [fullFileName UTF8String];

 FILE* fp = fopen( szFilePath, "w" );
 if(fp == nil)     NSLog(@"do not exist log file");
 else

{

   NSString *tableAtt = @"haejinLee";

   // NSString을 char로 바꾸는 작업,

   // 굳이 NSString을 만들지 않아도 되는상황에선 char를 먼저 사용합니다.

   const char* ctableAtt = [tableAtt UTF8String];

   fputs(ctableAtt, fp);

}

아이폰으로 실행시켜 보면

파일이 저장경로는 My Computer에서 Raw File System에서

(저는 i-FunBox에서 확인하였습니다)

//var/mobile/Applications/어플번호/Documents에서 확인하실수 있습니다.

어플번호를 몰라서 당황하시는 분들은

당황하실 필요 없습니다..그냥 자신의 아이폰에 저장되어 있는 어플 (개발 목적으로 넣은어플)

중에 하나..입니다.



출처 : http://blog.naver.com/PostList.nhn?blogId=heajin722¤tPage=27
Posted by 오늘마감

댓글을 달아 주세요