【发布时间】:2011-02-12 18:51:54
【问题描述】:
如何在 Plist 中存储值并在 iphone 3.0 运行时读取?。
提前致谢。
【问题讨论】:
-
stackoverflow.com/questions/2623750/… ,此链接可能对您有所帮助..
如何在 Plist 中存储值并在 iphone 3.0 运行时读取?。
提前致谢。
【问题讨论】:
此解决方案可同时应用于NSArray 和NSDictionary。
使用此方法从属性列表中创建一个NSData,并使用writeToFile 将其持久化到磁盘。
[NSPropertyListSerialization dataFromPropertyList:(id)plist
format:(NSPropertyListFormat)format
errorDescription:(NSString **)errorString];
使用此方法从NSData读取属性列表。
[NSPropertyListSerialization propertyListFromData:(NSData *)data
mutabilityOption:(NSPropertyListMutabilityOptions)opt
format:(NSPropertyListFormat *)format
errorDescription:(NSString **)errorString];
例子:
NSPropertyListFormat format = 0;
NSString *errorString = nil;
NSDictionary *dataDict = [NSPropertyListSerialization propertyListFromData:data
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format errorDescription:&errorString];
if (errorString != nil) {
NSLog(errorString);
[errorString release];
}
NSLog(@"got dictionary:%@", dataDict);
errorString = nil;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:dataDict
format:NSPropertyListXMLFormat_v1_0 errorDescription:errorString];
NSLog(@"plist data:%@", data); // convert to NSString to get <plist>
【讨论】:
如果您的数组或字典仅包含“标准”数据类型,如字符串、日期、数字、数组和字典,则可以使用-[NSArray writeToFile:atomically:] 或-[NSDictionary writeToFile:atomically:] 将内容保存到 .plist 文件中。要读取文件,请使用-initWithContentsOfFile:。
请注意,应用程序包在 iPhone OS 设备上不可写,因此您必须将文件存储在应用程序的 Documents 目录中。
【讨论】: