2012-06-27 6 views
0

plist를 사용하여 즐겨 찾는 목록을 저장하고 검색합니다. 내 아이폰을 다시 시작할 때까지 모든 것이 잘 작동합니다. 즐겨 찾기 목록이 사라집니다. 내 질문에 plist를 사용하여 데이터를 유지할 수 있습니까? 가능한 경우 누군가 도와 드릴 수 있습니까? 감사합니다.속성 목록의 데이터 지속

+2

질문은 ".plist 파일을 어디에 저장하고 있습니까?"입니다. 응용 프로그램 * 문서 * 또는 * 캐시 * 디렉토리에 있습니까? plist를 저장하는 데 사용하는 코드를 표시하면 도움이됩니다. – Nate

답변

0

저는 ios 개발 경험이 없지만 NSUserDefaults을 사용하겠습니다.
Mac OS X 응용 프로그램에서 사용하고 있습니다.

+0

NSUserDefaults는 사용자 기본값 이외에는 사용하지 말아야합니다. NSUserDefaults는 설정보기에서 잠재적으로 표시 할 수있는 항목을 의미합니다. – FelixLam

+0

설명 주셔서 감사합니다. 나도 배우고있어. –

0

bruno는 NSUserDefault에 사용자 설정 데이터를 저장하지 않는 이유를 제안합니다.

가 저장하려면 :

self.userDefaults = [NSUserDefaults standardUserDefaults]; 
[self.userDefaults setObject:myObject forKey:@"myKey"]; 
[self synchronize]; 

로드하려면 당신이 저장하고 PLIST를 다시로드하려면 어떻게

self.userDefaults = [NSUserDefaults standardUserDefaults]; 
NSObject *myObject = [self.userDefaults objectForKey:@"myKey"]; 
+0

NSUserDefaults는 사용자 기본값 이외에는 사용하지 않아야합니다. NSUserDefaults는 설정보기에서 잠재적으로 표시 할 수있는 항목을 의미합니다. – FelixLam

+0

NSUserDefaults는 사용자 설정을 저장하는 데 사용됩니다. 그것은 내가 user1419181이 의도하는 것과 정확히 같다는 것을 알게됩니다. – EsbenB

+0

즐겨 찾기는 데이터가 아닌 설정입니다. 데이터의 구조와 양에 따라 상당히 커질 수 있습니다 (사파리 북마크 및 그룹보기). – FelixLam

2

당신이 뭔가를 할 수

? 일반적으로 그것은 문제가되어서는 안됩니다. 배경으로 갈 때 (또는 무언가가 변경 될 때마다) plist를 앱의 문서 디렉토리에 저장하고 시작시 다시로드하기 만하면됩니다. 다른 사람이 제안이 만이 아니라 사용자 데이터에 대한 사용자 기본 설정에 대한 의미로

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag 

당신은 ,NSUserDefaults을 사용하지 않아야합니다 :

은 간단하게 (NSArray를 또는 NSDictionary에 대한) 다음과 같은 방법을 사용합니다. 문서의 디렉토리에 저장하면 데이터가 올바르게 백업되고 더 큰 데이터 세트에서도 제대로 작동합니다.

NSUserDefaults은 설정보기에 잠재적으로 표시 할 수있는 것을 의미합니다.

0

예는 데이터를 유지하고 다음 코드를 사용하여 ... 문서 디렉토리에 당신의 페이지 목록을 복사 P-목록에 사용할 수 있습니다 ...

NSError *error; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"your_plist_name.plist"]; 

이 당신을 도울 것입니다 수를

+0

이 코드는 실제로 경로 만 생성하지만 해당 경로에서 아무 것도 쓰거나 읽지 않습니다. – FelixLam