如何将子项/级别添加到plist的子键(多级)?

时间:2011-08-19 06:43:14

标签: iphone objective-c ios plist user-input

我正在尝试在iphone上创建一个规划器应用程序。我想在另一个视图中在我的plist中创建一个子键/行(这意味着,我将首先在一个视图中创建plist的结构,而在另一个视图中,我想在已创建的另一个视图中添加另一个项目plist中)。我希望我的plist看起来像这样:

  

Root(数组)

  Item 0 (Dictionary)
        ProjectName (String)
        Stages (Dictionary)
               Analysis (Array)
                       ^Item 0 (Dictionary) 
                              Levels (String)
                              Tools (String)
                       ^Item 1 (Dictionary)
                              Levels (String)
                              Tools (String)
               Develop (Array)

 Item 1 (Dictionary)
        ProjectName (String)
        Stages (Dictionary)
               Analysis (Array)
                       ^Item 0 (Dictionary)
                              Levels (String)
                              Tools (String)
                       ^Item 1 (Dictionary)
                              Levels (String)
                              Tools (String)
               Develop (Array)

^现在,我的分析数组中没有项目0和项目1,我想添加它,但我不知道正确的代码。

所以在我的第一个视图中,我可以添加一个新项目,添加后,它将保存在我的plist中作为字典,第一个项目0(我在用户保存新项目时编写代码)分析和开发数组的阶段字典也将在我的plist中创建 - 如果用户选择添加更多项目,则会有项目1,项目2等。

用户创建(保存)新项目后,他/她可以进入第二个视图,在那里他/她可以选择一个阶段(分析/开发)。

例如,用户选择Analysis阶段,他/她将被带到另一个视图,该视图允许用户为特定阶段添加级别。

我面临的问题是我想如何将另一个带字符串的字典项添加到plist中现有的Analysis阶段(如何将新值/项添加到plist中的现有字典/数组(行)中) ?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果我理解你,你会做这样的事情:

[analysisArray addObject:newDictionary];

这是你的意思吗?

编辑:用新的词替换第0项的词典:

int row = 0;
[analysisArray replaceObjectAtIndex:row withObject:newDictionary]

在第0项设置个人密钥:

int row = 0;
rowDictionary = [analysisArray objectAtIndex:row];
[rowDictionary setValue:value forKey:key];