0

我有一个结构如下的 plist:

<dict>
<key>memos</key>
<array>
    <dict>
        <key>title</key>
        <string>First Memo</string>
        <key>content</key>
        <string>Testing one two three</string>
        <key>category</key>
        <string>testing</string>
    </dict>
    <dict>
        <key>title</key>
        <string>Test</string>
        <key>content</key>
        <string>This is a test memo.</string>
        <key>category</key>
        <string>testing</string>
    </dict>
</array>
</dict>

我正在将它读入这样的数组:

self.memos = [NSMutableArray array];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Memos" ofType:@"plist"];
NSDictionary *tempDictionary = [NSDictionary dictionaryWithContentsOfFile:path];
NSArray *tempArray = [tempDictionary objectForKey:@"memos"];
for(id dict in tempArray) {
    NSString *title = [dict objectForKey:@"title"];
    NSString *content = [dict objectForKey:@"content"];
    NSString *category = [dict objectForKey:@"category"];
    Memo *m = [[Memo alloc] initWithTitle:title content:content category:category];
    [self.memos addObject:m];
}

我的问题是:如何将新的备忘录(三个字符串的字典)添加到 plist(特别是我的 plist 中的备忘录字典数组)?

4

3 回答 3

0

您必须在 NSDictionary 中获取 plist,然后将 Memos 数组读入 NSMutableArray,向其中添加一个对象,然后将可变的 memos 数组保存为字典中的 memos 并将其写回 plist 文件。

于 2013-07-29T00:51:33.183 回答
0

更改此行:

NSArray *tempArray = [tempDictionary objectForKey:@"memos"];

self.memos = [tempDictionary objectForKey:@"memos"];

希望能帮助到你...

并确保将 self.memos 数据写回文件。

另请注意,您不能编辑捆绑包中的文件。在开始编辑并保存之前,您需要确保将其复制到文档目录。

于 2013-07-29T00:56:59.267 回答
0

尝试这个:

[tempArray addObject:NewDictionary That you want to insert];

然后将此临时数组添加到 TempDictionary。

[tempDictionary setObject:tempArray forKey:@"memos"];

然后将 tempdictionary 保存到文件中。

[tempDictionary writeToFile:path atomically:YES];

希望能帮助到你!!

于 2013-07-29T06:01:34.337 回答