【问题标题】:How to save a value in a plist file in iphone?如何在iphone的plist文件中保存一个值?
【发布时间】:2010-04-12 11:07:41
【问题描述】:

我是 iphone 开发新手。我正在使用下面的代码将值添加到 plist,但是在执行代码后检查 plist 时,我没有看到 plist 中保存的任何值。我哪里出错了?请帮帮我。我创建的 plist 在资源文件夹中。谢谢。

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"regvalue.plist"];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:finalPath];
[plistDict setValue:@"hello" forKey:@"choice"];
[plistDict writeToFile:finalPath atomically: YES];

用于检索值

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"regvalue.plist"];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:finalPath];
NSString *value;
value = [plistDict objectForKey:@"choice"];
NSLog(@"the value is %@",value);

它只给出空值。请帮助我。谢谢。

【问题讨论】:

    标签: iphone plist


    【解决方案1】:

    资源文件夹不可写。您应该将其保存到文档文件夹中。

    【讨论】:

    • 我没有任何文件夹名称文件,你希望我有它与类老
    • 您的应用安装到设备或模拟器后会有一个文件夹。所有应用程序的沙箱中都有一组基本目录(这不是 Mac OS X,您的资源文件夹是可写的)。每个 App 沙箱都有 app bundle、documents 文件夹、一个 temp 文件夹和一个 cache 文件夹。
    • 我还是不明白。我是新手。我不了解沙盒。我还找不到文件夹。请让我知道我应该在我的 xcode 项目的哪个文件夹中把plist文件。谢谢。
    • 如果您正在使用代码编写 plist,那么您无需将其放在 Xcode 项目中的任何位置。安装您的应用程序后,将创建我提到的文件夹。您应该使用NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; 获取文档目录的路径,然后将您的文件名附加到路径并使用writeToFile:atomically 方法将其写入文件。这一切都在您应该阅读的文档中进行了解释。
    • 我只需右键单击并添加新文件即可创建 plist。并从其他选项中选择 plist。
    【解决方案2】:

    或许你可以在这里找到答案: How to write data in plist?

    但如果你只想在你的应用中保存一些消息,NSUserDefaults 是更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      相关资源
      最近更新 更多