Save and Load data

이번엔 뭔가 설정값을 아이폰에 저장해놓고 앱이 죽으나 사나 그 값을 참조할 기능이 필요합니다.
찾다보니 데이터 저장 방법은 3가지 정도가 있다는군요

http://stackoverflow.com/questions/2206013/save-and-load-data-iphone-sdk

  • Use File Manager to save the file to the file system. (But in your case, you should not do that) It’s useful for large images files only.
  • Use Sqlite to save your data into a relational database.
  • Use Core Data Framework to save all your data.

마침 동료의 Head First iPhone Development 라는 책엔 CoreData의 ManagedObject에 대한 내용이 있어서(Ch 7)
이것저것 따라해보다 그냥 .plist  활용방안을 찾기 시작합니다

.plist에서 데이터 불러오는 코드
http://icodeblog.com/2009/02/14/loading-data-from-plist-files/

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];

versionLabel = [[UILabel alloc] initWithFrame:CGRectMake(100,100,60,25)]; // for example
versionLabel.backgroundColor = [UIColor clearColor];
versionLabel.textColor = [UIColor whiteColor];
versionLabel.font = [UIFont	systemFontOfSize:10];
NSString *versionString = [NSString stringWithFormat:@"v%@", [plistData objectForKey:@"CFBundleVersion"]];
versionLabel.text = versionString;
[self.view addSubview:versionLabel];

테스트 방법은 간단합니다
Resources에 XXX.plist를 만들어 NSLog 한번 찍어보면 되는거죠 ㅎㅎ

저장한 값이 잘 불러와지면 실제 우리가 저장할 키에 값을 넣을 코드가 필요한데요. 여기서 한참을 헤맸습니다 😦

http://www.iphonedevsdk.com/forum/iphone-sdk-development/18314-help-not-writing-plist-file-properly.html

코드도 난무하고 답글에 답글까지 정신이 없지만 조~아래 delegate 쓰는 코드를 참조했구요
아직 delegate 까진 쓸 필요없어 그 부분은 주석처리 한 채 제대로 작동하는거 확인하고 마무리 지었습니다

Advertisements
%d bloggers like this: