iPhone Seminar Ⅳ 2010 . 06 . 04 . 금 정보통신연구소 유승구 연구원 Rev. No. 1.0 Last modified: 2010/06/04 2019-01-14 NOVAPEX Mobile Co., LTD
Agenda ◈ File Handling File handling Overview Property lists object archives SQLite3 참고 링크
1. File Handling ◈ Overview C 함수의 저장 메커니즘을 그대로 사용 할 수 있다. 코코아의 저 수준 파일 관리 툴들도 사용 가능 샌드 박스로 인해 허용된 폴더(\Documents)만 접근 가능 MAC OS X 기반의 API 함수를 100% 호환하지 못함 3
환경설정 Data [Library/Preferences] 1. File Handling ◈ 폴더 구조 애플리케이션의 모든 데이터 저장 환경설정 Data [Library/Preferences] 애플리케이션이 임시로 사용하는 파일 4
1. File Handling ◈ 경로 탐색 소스 Document 디렉터리 경로 Temp 디렉터리 경로 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filename = [documentsDirectory stringByAppendingPathComponent: @"theFile.txt"]; Temp 디렉터리 경로 NSString *tempPath = NSTemporaryDiurectory(); NSString *tempFile = [tempPath stringByAppendingPathComponent:@"tempFile.txt"]; 5
2. 프로퍼티 리스트 ◈ Overview Xcode나 Property List Editor를 이용해 쉽게 편집 가능 직렬화 객체만 저장이 가능 (NSDictionary, NSArray …) 바이트 스트림으로 변환되기 대문에 파일 저장, 네트워크 전송이 가능 [myArray writeToFile:@"/some/file/location/output.plist" atomically:YES]; 콜렉션 클래스에 정의되어있는 직렬화 객체만 저장이 가능 (NSArray, NSMutableArray, NSDictionary, NSMutableDictionary, NSData, NSMutableData, NSString, NSMutableString, NSNumber, NSDate) 6
2. 프로퍼티 리스트 ◈ Text & Source code property list 프로퍼티 리스트의 직렬 구조 7
2. 프로퍼티 리스트 ◈ Overview Xcode나 Property List Editor를 이용해 쉽게 편집 가능 직렬화 객체만 저장이 가능 (NSDictionary, NSArray …) 바이트 스트림으로 변환되기 때문에 파일 저장, 네트워크 전송이 가능 [myArray writeToFile:@"/some/file/location/output.plist" atomically:YES]; 콜렉션 클래스에 정의되어있는 직렬화 객체만 저장이 가능 (NSArray, NSMutableArray, NSDictionary, NSMutableDictionary, NSData, NSMutableData, NSString, NSMutableString, NSNumber, NSDate) 8
2. 프로퍼티 리스트 ◈ Source Code 9
2. 프로퍼티 리스트 ◈ Source Code 10
2. 프로퍼티 리스트 ◈ Source Code 11
3. 아카이빙 모델 ◈ Overview NSCoding, NSCopying 프로토콜과 함께 구현 int, float 같은 자료형으로 구성되어있다면 아카이브로 만들 수 있음 Key-Value 코딩 기법을 사용하여 객체와 실수를 인코딩하고 디코딩 가능 프로퍼티 리스트와는 달리 모든 객체에 적용 가능 12
3. 아카이빙 모델 ◈ 소스 파일 13
3. 아카이빙 모델 ◈ 소스 파일 14
3. SQLite ◈ OverView Database의 일종, SQL DB엔진을 탑재한 경량화된 DB 서버/클라이언트 모델을 지원하지 않는 데이터베이스로 로컬에서만 사용가능 원격 DB 접근이 이루어지지 않아 접근이 매우 빠름 표준 SQL 구문을 모두 지원 데이터 관리 용이 모바일 기기에 널리 사용, C, C++, Java, Objective-C, Delphi, PHP 등 다양한 개발 언어 지원 15
3. SQLite ◈ 특징점 트랜잭션들은 강력한 실패와 시스템 충돌 후에도 내구성이 강하고, 견고하고, 일관되게 독립적으로 구성 되어있다.(ACID) Zero-configuration - 설치 나 관리자가 필요 없다. SQL92의 대부분을 지원한다. 완성된 DB는 단일 크로스 플랫폼 디스크 파일에 저장된다. 2테라바이트 (2^41) 크기의 데이터 파일 생성 지원 다른 client/server DB 엔진에 비해 대부분의 동작이 빠르다. 간단하고 사용하기 편한 API 제공 ANSI-C 코드로 쓰여졌으며 TCL bindings을 포함한다. binding은 12가지 언어로 사용 가능 ANSI-C 소스 파일을 사용 할 수 있기 때문에 어떤 프로젝트에서도 쉽게 사용이 가능 하다. Self-contained: no external dependencies. Cross-platform: Unix (Linux and Mac OS X), OS/2, and Windows (Win32 and WinCE) 다른 시스템으로 출력 가능 16
3. SQLite ◈ 소스 파일 17
3. SQLite ◈ 소스 파일 테이블 생성 18
3. SQLite ◈ 소스 파일 테이블 생성 19
3. SQLite ◈ 소스 파일 데이터 입력 20
3. SQLite ◈ 소스 파일 데이터 가져오기 21
마무리 감사합니다. 22