首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字典写到plist中的数组中?

如何将字典写到plist中的数组中?
EN

Stack Overflow用户
提问于 2013-07-29 08:47:46
回答 3查看 603关注 0票数 0

我有一个plist,它的结构如下:

代码语言:javascript
复制
<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>

我将它读入一个数组,如下所示:

代码语言:javascript
复制
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中的Memo字典数组)添加新的Memo (三个字符串的字典)?

EN

回答 3

Stack Overflow用户

发布于 2013-07-29 08:51:33

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

票数 0
EN

Stack Overflow用户

发布于 2013-07-29 08:56:59

更改此行:

代码语言:javascript
复制
NSArray *tempArray = [tempDictionary objectForKey:@"memos"];

代码语言:javascript
复制
self.memos = [tempDictionary objectForKey:@"memos"];

希望这能帮上忙。

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

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

票数 0
EN

Stack Overflow用户

发布于 2013-07-29 14:01:34

试试这个:

代码语言:javascript
复制
[tempArray addObject:NewDictionary That you want to insert];

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

代码语言:javascript
复制
[tempDictionary setObject:tempArray forKey:@"memos"];

然后将tempdictionary保存到文件中。

代码语言:javascript
复制
[tempDictionary writeToFile:path atomically:YES];

希望它能有所帮助!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17914531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档