2010-04-27 2 views

답변

2

문자열, 날짜, 숫자, 배열 및 사전과 같은 "표준"데이터 유형 만 포함하는 배열이나 사전이있는 경우 -[NSArray writeToFile:atomically:] 또는 -[NSDictionary writeToFile:atomically:]과 함께 .plist 파일에 내용을 저장할 수 있습니다. 파일을 읽으려면 -initWithContentsOfFile:을 사용하십시오.

응용 프로그램 번들은 iPhone OS 장치에 쓸 수 없으므로 파일을 응용 프로그램의 Documents 디렉토리에 저장해야합니다.

1

이 해결 방법은 NSArrayNSDictionary에 모두 적용 할 수 있습니다.

NSData을 속성 목록에서 만들고 writeToFile을 사용하여 디스크에 유지하려면이 방법을 사용하십시오.

[NSPropertyListSerialization dataFromPropertyList:(id)plist 
              format:(NSPropertyListFormat)format 
           errorDescription:(NSString **)errorString]; 

NSData에서 속성 목록을 읽는 방법입니다.

[NSPropertyListSerialization propertyListFromData:(NSData *)data 
           mutabilityOption:(NSPropertyListMutabilityOptions)opt 
              format:(NSPropertyListFormat *)format 
           errorDescription:(NSString **)errorString]; 

예 :

NSPropertyListFormat format = 0; 
NSString *errorString = nil; 

NSDictionary *dataDict = [NSPropertyListSerialization propertyListFromData:data 
     mutabilityOption:NSPropertyListMutableContainersAndLeaves 
     format:&format errorDescription:&errorString]; 

if (errorString != nil) { 
    NSLog(errorString); 
    [errorString release]; 
} 

NSLog(@"got dictionary:%@", dataDict); 

errorString = nil; 
NSData *data = [NSPropertyListSerialization dataFromPropertyList:dataDict 
     format:NSPropertyListXMLFormat_v1_0 errorDescription:errorString]; 

NSLog(@"plist data:%@", data); // convert to NSString to get <plist> 
관련 문제