앱을 제작하면서 서버와 값을 주고 받는 일이 많다. (현재 내가 제작하는 앱은 값을 주고, 결과를 XML로 받는다.) 값을 주고 받기에 편하기 위해 ASIHTTP 라이브러리를 이용했다. 1. 라이브러리를 다운 받는다. http://allseeing-i.com/ASIHTTPRequest/ 다운 받으면 Iphone용 프로젝트를 열어서 'External' 폴더와 'Classes' 폴더를 나의 프로젝트로 옮겨 넣는다. 옮긴후 'Tests' 폴더는 삭제한다. 테스트 한 결과 에러만 잔득 만들어 내고 필요 없다. 2. 프레임웍 추가 http://allseeing-i.com/ASIHTTPRequest/Setup-instructions 여기에도 나와있듯이 아래와 같은 프레임웍을 추가한다. CFNetwork.framework SystemConfiguration.framework, MobileCoreServices.framework, CoreGraphics.framework libz.1.2.3.dylib libxml2.dylib 3. Header Search Paths 추가 ${SDK_DIR}/usr/include/libxml2 4. 이후 코딩은 http://allseeing-i.com/ASIHTTPRequest/How-to-use 이곳 참고하면 된다. 5. 값을 보내고 받은 xml은 NSString 형태로 받게 되고, 아래와 같이 xml로 바꿔서 파싱해주면 된다. (NSString 으로 받은걸 좀더 쉽게 파싱하는 방법이 있으면 좋으련만, 서치한걸로는 이 방법이 최선이라 생각된다.) NSData *data = [response dataUsingEncoding:NSUTF8StringEncoding]; NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data ]; 6. xml 파싱은 NSXMLParser 이용하면 된다. 따로 포스트 할 예정이다. (많이 복잡한 xml이라면 다른 라이브러리를 사용하겠지만 결과로 받은 xml은 짧으므로 기본 클래스를 이용할 예정)
'ios'에 해당되는 글 65건
- 2012.05.30 app과 서버의 데이터 주고 받기 (ASIHTTP)
- 2012.04.28 xcode 4.3 empty project 로 시작시 참고사항
- 2012.03.14 SQLITE3 DB 파일 복사 및 , Path가져오기
- 2012.03.12 시간 표시
- 2011.10.05 iOS View 이동 전환 하기 총정리
xcode 4.2를 사용하다가 4.3을 사용하니 MainWindow.xib 가 없어서
MainWindow.xib 를 사용하여 프로젝트를 시작하는 방법을 정리한다.
- xcode 4.3 empty project로 새 프로젝트를 생성
- NewFile → User Interface → Window → ... → MainWindow 로 저장
- AppDelegate.h 파일에 아래와 같이 IBOutlet을 추가
- @property (strong, nonatomic) IBOutlet UIWindow *window;
- MainWindow.xib 를 클릭하여 Interface Builder 에서 아래와 같이 작엄
- Objects 항목에다가 우측 Library에서 Object를 끌어다 놓기
- Objects 항목에다가 우측 Library에서 Window 끌어다 놓기
- 끌어다 놓은 Object 선택하고 Identity Inspector 에서 Class 를 해당하는 xxxAppDelegate 로 변경
- File's Owner 선택하고 Identity Inspector 에서 Class 를 UIApplication 으로 변경
- File's Owner 선택하고 Connections Inspector 에서 Outlets 의 delegate를 xxx App Delegate 로 연결
- Objects에서 xxx App Delegate 를 선택하고 Connections Inspector 에서 rootController, window를 연결
- 여기서 rootController 는 사용하고자 하는 ViewController 를 미리 만들어 놓아야 함(아래 그림에서는 TabBarController)
- Project Targets 세팅에서 Main Interface를 MainWindow로 적어준다
- AppDelegate.m 의 초기 코드를 아래와 같이 변경 (window를 위에서 IBOutlet으로 변경했으므로 alloc 제거)
-
//self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
//self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = rootController;
[self.window addSubview:rootController.view];
[self.window makeKeyAndVisible];
※ 위 방법은 Beginning iPhone4 Development 책에서 사용하는 방식을 Xcode 4.3 에서 세팅하는 것이다.
꼭 위와 같이 시작할 필요는 없으며, 시작하는 코드에 ViewController를 alloc 하여 AppDelegate가 멤버로 가지고 있는 window에 rootController로 지정해서 시작해도 될 것이다. 해당 ViewController 의 viewDidLoad 등의 함수에서 초기 화면을 세팅하면 된다.
'영삼이의 IT정보' 카테고리의 다른 글
ip공유기(iptime)를 이용한 서버 운영 (0) | 2012.05.16 |
---|---|
PHP에서 꼭 알아야 될 함수 (0) | 2012.04.30 |
iOS - SQLite 한글-영어 순 정렬하기 (0) | 2012.03.27 |
[iOS] Stretchable Image를 이용해 App. Size를 줄여보자. (0) | 2012.02.20 |
IB없이 개발하기 (0) | 2011.12.30 |
@interface TESTAppDelegate : NSObject <UIApplicationDelegate> { NSString *DBNAME; NSString *DBPATH; } NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent: @"Store.sqlite"]; self.DBPATH = writableDBPath; NSLog(@"writableDBPath is %@", writableDBPath); BOOL dbexits = [fileManager fileExistsAtPath:writableDBPath]; if (!dbexits) { NSLog(@"데이터베이스 카피"); // 데이터베이스가 존재하지 않으면, 어플리케이션 Resource아래에서 복사를 한다 NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Store.sqlite"]; NSError *error; BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; } else { NSLog(@"이미 패스가 잇음"); }
-- m파일
아 별짓다했네... 3시간동안 강제로 Path따서 햇지만 읽히는건 읽혀지지만... insert가 안되서...
완전 제일 중요한거!!! 앱/Documents <--요놈안에있는놈만 수정이 가능하다!!
'영삼이의 IT정보' 카테고리의 다른 글
APM UTF-8 설정 (0) | 2011.10.21 |
---|---|
UITableViewCellStyle 종류 (0) | 2011.10.19 |
윈도우폰이 가져오는 생각의 변화 (0) | 2011.09.28 |
애플, 아이폰 기자 회견 10월 4일 개최! (0) | 2011.09.28 |
딜라이트샵 구경 (0) | 2011.09.27 |