Как хранить значения в Plist и читать во время выполнения в iphone 3.0? - PullRequest
1 голос
/ 27 апреля 2010

как хранить значения в Plist и читать во время выполнения в iphone 3.0?.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

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

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

1 голос
/ 27 апреля 2010

Это решение может применяться как к 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...