2009-04-25 3 views
2

내 응용 프로그램에는 일부 구성 정보와 사용 및 변경되는 작은 정보를 저장하는 간단한 ASCII 파일이 있습니다. 그 파일을 아이폰에 복사하고 싶습니다.iPhone 앱 : 설정 파일은 어디에 저장해야합니까?

1) xcode에이 파일 (config.txt)을 어디에 두어야하는지 알려주십시오. 리소스 아래에 넣어야합니까?

2) iPhone에서 어떻게 액세스합니까? 방금 사용하면

str = [NSString stringWithContentsOfFile:@"config.txt"] 

또는 더 완전한 경로를 사용해야합니까? 그렇다면 무엇입니까?

답변

9

응용 프로그램에서 변경할 수있는 경우 사용자 설정을 저장하려면 NSUserDefaults을 사용해야합니다. 설명서는 here입니다.

설정

는 PLIST 파일로 저장됩니다, 그래서 당신은 몇 가지 설정으로 NSUserDefaults을 미리 채울하려는 경우 당신은 당신이 몇 가지 코드 등을 수행 할 수 있습니다, NSDictionary 경우, NSArray 경우 등

를 저장할 수 있습니다 이 하나

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"defaults" ofType:@"plist"]; 
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:filePath]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict]; 

기본 설정으로 자원 폴더에 defaults.plist 파일을 놓고, 위의 코드를 사용해야합니다. AppDelegate의 +(void)initialize 메서드에서이 코드를 실행하지만 다른 곳에서 호출하도록 선택할 수 있습니다.

+0

나는 사용자가에서 선택해야 할 몇 가지 기본 옵션을 저장할합니다. 그는 앱을 사용할 때 취향에 더 많은 옵션을 추가 할 수 있습니다. 예 : 조류 관찰 앱의 경우 초기 옵션은 "비둘기", "참새"등이 될 수 있습니다. 사용자는 "독수리"와 같은 다른 것들을 추가 할 수 있습니다. 목록이 커질 수 있습니다 (100 개의 항목이 표시됩니다). NSUserDefaults가 여전히 좋은 선택입니까? – euphoria83

+1

성능을 테스트하려면 장치 (시뮬레이터가 아님)에 큰 plist 파일을로드 해보십시오. 성능이 더 필요하면 SQLite를 확인하고 대신 DB에 정보를 저장할 수 있습니다. – pgb

+0

기존 키 - 값 쌍이있는 파일을 어떻게 가지고 NSUserDefaults를 사용하여 액세스합니까? – euphoria83

1

리소스에 넣을 수 있습니다. 파일을 얻으려면, 다음, 당신은 단순히 사용할 수 있습니다

[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]] 

나는 그러나, 설정에 대한 NSUserDefaults을 제안 할 수 있습니까? 읽기와 쓰기에 많은 어려움을 줄여 줄 것입니다.

0

nsuserdefaults가 사용자의 요구를 충족시키지 못하면 Documents 디렉토리의 파일에 구성 정보를 저장할 수 있습니다. 파일이 시작시 존재하지 않으면 Resources에있는 버전을 읽으십시오.

1

그리고 당신이 NSUserDefaults를 검색하려면, 다음을 수행 할 수 있습니다

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// getting a NSString 
NSString *myString = [prefs stringForKey:@"keyToLookupString"]; 

// getting a NSInteger 
NSInteger myInt = [prefs integerForKey:@"integerKey"]; 

// getting a Float 
float myFloat = [prefs floatForKey:@"floatKey"]; 
관련 문제