【问题标题】:How do I clear the data in a plist created in Xcode?如何清除在 Xcode 中创建的 plist 中的数据?
【发布时间】:2012-01-23 22:28:07
【问题描述】:

我一直在使用 plist 在我的应用中存储数据。我已经能够毫无问题地从 plist 写入和读取。我在 Xcode 中创建了这个 plist,我自己添加了数字、字典和数组的行。但是,我希望能够将 plist 重置为原始状态,并且必须有比将 0 或 nil 值写入 plist 中的每个条目更简单的方法。那么将 plist 重置为其初始默认状态的最简单方法是什么?

【问题讨论】:

    标签: iphone objective-c ios plist


    【解决方案1】:

    最简单的方法是使用 NSFileManager 删除文件,如下所示:

    [[NSFileManager defaultManager] removeItemAtPath:plistPath error:NULL];
    

    或者如果您不想这样做,假设 plist 是一本字典,只需从您的应用程序包中加载一个,然后覆盖您的文档中的那个,如下所示:

    NSDictionary *originalPlist = [NSDictionary dictionaryWithContentsOfFile:bundleFile];
    [originalPlist writeToFile:documentsFile atomically:YES];
    

    这将用原始文件覆盖保存的文件。

    【讨论】:

    • 谢谢你,这正是我想要的。我想我只是需要有人直接向我解释。
    • 是否可以从 plist 文件中删除单个条目?基本上我将日期存储在我的 plist 中,我希望随着 plist 存储的日期到期,该日期/条目应该从plist 和 plist 应该被刷新。我该怎么做?
    • 你不会直接从 plist 中删除它,你可以通过使用 mutableCopy 方法创建一个 NSMutableDictionary 然后使用 removeObjectForKey: 方法从字典中删除它。然后将新字典保存在旧 plist 的顶部。
    • 删除文件的新语法现在是:[[NSFileManager defaultManager] removeItemAtPath:plistPath error:nil];
    【解决方案2】:
     NSFileManager *fileManager = [NSFileManager defaultManager];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:@"mobile-watchlist.plist"];
        [fileManager removeItemAtPath: fullPath error:NULL];
    

    【讨论】:

      【解决方案3】:

      您也可以尝试重命名您的 Plist。这是我认为最少的工作。

      【讨论】:

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