所以,我已经编写了这个方便方法作为解决问题的方法,从属性列表创建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;
}
答案 0 :(得分:3)
NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];