【问题标题】:How to store values inside Plist and read while runtime in iphone 3.0?如何在 Plist 中存储值并在 iphone 3.0 运行时读取?
【发布时间】:2011-02-12 18:51:54
【问题描述】:

如何在 Plist 中存储值并在 iphone 3.0 运行时读取?。

提前致谢。

【问题讨论】:

标签: iphone plist store


【解决方案1】:

此解决方案可同时应用于NSArrayNSDictionary

使用此方法从属性列表中创建一个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>

【讨论】:

    【解决方案2】:

    如果您的数组或字典仅包含“标准”数据类型,如字符串、日期、数字、数组和字典,则可以使用-[NSArray writeToFile:atomically:]-[NSDictionary writeToFile:atomically:] 将内容保存到 .plist 文件中。要读取文件,请使用-initWithContentsOfFile:

    请注意,应用程序包在 iPhone OS 设备上不可写,因此您必须将文件存储在应用程序的 Documents 目录中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-13
      • 2012-03-25
      • 1970-01-01
      • 2020-03-31
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多