Создание словаря из PLIST в строке NSString - PullRequest
0 голосов
/ 25 февраля 2011

Итак, я написал этот удобный метод в качестве решения проблемы, когда создание NSDictionary из Списка свойств не так же просто, как , как из файла / веб-ресурса. Хотя я могу проанализировать это с помощью NSXMLParser или изменить способ отправки данных моим сервером (json, что угодно), на данный момент меня это не беспокоит, скорее, меня беспокоит то, что этот метод, несомненно, медленный и склонный до коллизии, так как я не использую rand () для определения имени файла .plist.

Итак, можно ли сделать это быстрее? Я должен убедиться, что файл не существует между удалениями приложения, следовательно, использование /tmp.

+ (NSDictionary *)dictionaryFromPropertyListString:(NSString *)stringToParse
{
    NSLog(@"dictionaryFromPropertyListString: %@", stringToParse);

    NSString *newFilePath = [NSTemporaryDirectory() stringByAppendingString:@"/Stuff.plist"];

    [stringToParse writeToFile:newFilePath atomically:YES encoding:NSASCIIStringEncoding error:nil];

    NSDictionary *dictionaryToReturn = [NSDictionary dictionaryWithContentsOfFile:newFilePath];

    NSLog(@"returned dictionary: %@", [dictionaryToReturn descriptionInStringsFileFormat]);

    return dictionaryToReturn;
}

1 Ответ

3 голосов
/ 25 февраля 2011
NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];
...