在app启动时从另一个plist添加项目

时间:2013-01-11 07:03:22

标签: ios objective-c xcode plist

我的应用程序是一个项目列表,用户可以对其进行评级和记录等。所有这些项目(存储用户评级和备注的字典)都存储在plist中,当应用程序移动到文档目录中首次加载(如果plist文件已经存在于文档目录中,则会跳过此步骤)。现在我有一些评论,人们一直在说列表中应该有更多的项目。现在我想弄清楚如何向plist添加新项目。如果我将它们添加到现有plist中,则用户将永远不会看到新项目,因为应用程序会检查文档目录中是否已存在该数据库。所以他们永远不会收到新的名单。因此,我计划在其中创建一个包含项目的新plist,并将每个新项目附加到旧plist,如果该项目尚不存在(因为用户可以自己添加项目,所以我不希望有重复的条目,以防万一用户添加了一个具有相同名称的项目)。我的困境是我不确定plist合并的确切/如何进行。我是否在App Delegate中执行此操作?我是否在主视图的viewDidLoad中执行此操作?如果已经将新项目添加到旧plist中,每次应用加载时如何阻止它进行检查?我知道有不同的方法可以做到这一点。我只是在寻找最简单的“应用程序负载较轻”的方式。

1 个答案:

答案 0 :(得分:0)

确定。感谢iOS聊天中的几个人,我解决了这个问题。所以基本上在我application didFinishLaunchingWithOptions的{​​{1}}方法中,我将两个plists加载到2个不同的AppDelegate.m array1和array2中,我还创建了一个NSMutableArray数组3,我在其中加载了原始的plist用户文档目录。然后我循环检查以确保我没有根据他们的NSArrays添加任何重复的项目(因为数组中的项目是字典)。如果项目不匹配,那么我将它们添加到第3个数组(array3)。然后我将array3保存到原始的plist文件路径中。然后我在用户默认值中设置一个整数,这样它只执行一次这个任务。我不希望应用程序在用户打开应用程序的每一次都经历这个过程。以下是我使用的代码。

Name_Key