从NSString中的PLIST创建字典

时间:2011-02-25 00:00:31

标签: iphone nsdictionary property-list

所以,我已经编写了这个方便方法作为解决问题的方法,从属性列表创建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 个答案:

答案 0 :(得分:3)

NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];