0

因此,我编写了这个方便的方法来解决从属性列表创建 NSDictionary不像从文件/Web 资源那样容易的问题。虽然我可以使用 NSXMLParser 来解析它,或者改变我的服务器发送数据的方式(json 等),但这不是我现在关心的问题,而是我担心的是这种方法无疑是缓慢的并且容易发生冲突,因为我没有' t 使用 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;
}
4

1 回答 1

3
NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];
于 2011-02-25T00:06:04.573 回答