Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从NSString中的PLIST创建字典_Iphone_Nsdictionary_Property List - Fatal编程技术网

Iphone 从NSString中的PLIST创建字典

Iphone 从NSString中的PLIST创建字典,iphone,nsdictionary,property-list,Iphone,Nsdictionary,Property List,因此,我编写了这个方便的方法来解决从属性列表创建NSDictionary不像从文件/web资源创建NSDictionary那么容易的问题。虽然我可以使用NSXMLParser来解析它,或者改变我的服务器发送数据的方式(json,无论什么),但目前我并不关心这个问题,我更关心的是,由于我不使用rand()来确定.plist的文件名,所以该方法速度慢且容易发生冲突 那么,有没有可能让它更快呢?我需要确保该文件在删除应用程序之间不存在,因此使用/tmp + (NSDictionary *)dictio

因此,我编写了这个方便的方法来解决从属性列表创建NSDictionary不像从文件/web资源创建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;
}
NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];