2010-04-27 7 views

ответ

2

Если у вас есть массив или словарь, который содержит только «стандартные» типы данных, такие как строки, даты, числа, массивы и словари, вы можете сохранить содержимое в файл .plist с помощью -[NSArray writeToFile:atomically:] или -[NSDictionary writeToFile:atomically:]. Чтобы прочитать файл, используйте -initWithContentsOfFile:.

Обратите внимание, что пакет приложений не доступен для записи на устройствах iPhone OS, поэтому вам необходимо сохранить файл в папке «Документы» вашего приложения.

1

Данное решение может применяться как к NSArray, так и к NSDictionary.

Используйте этот метод, чтобы сделать список свойств 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^