首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加NSArray作为NSMutableDictionary的NSMutableDictionary密钥?

如何添加NSArray作为NSMutableDictionary的NSMutableDictionary密钥?
EN

Stack Overflow用户
提问于 2011-10-14 11:22:01
回答 2查看 602关注 0票数 2

我尝试了以下操作:

代码语言:javascript
复制
NSMutableArray *myArr = [NSMutableArray arrayWithArray:[myDict objectForKey:@"myKey"]];
[myArr addObject:@"New string xxx"];
[myDict setObject:myArr forKey:@"myKey"];
// Write to file (done successfully)

如你所见,我得到了一个数组,它用键@"myKey"存储在plist上,添加了一些对象,并希望在plist上重新记录它,当然还有一些额外的值。

问题是,在我的plist上会发生以下情况:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>myKey</key>
        <array>
                <string>First entry on the plist</string>

                <array>
                    <string>First entry on the plist</string>
                    <string>New string xxx</string>
                </array>
        </array>
</dict>
</plist>

当然,期望的输出是:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
    <plist version="1.0">
    <dict>
            <key>myKey</key>
            <array>
                    <string>First entry on the plist</string>
                    <string>New string xxx</string>
            </array>
    </dict>
    </plist>
EN

回答 2

Stack Overflow用户

发布于 2011-10-14 11:38:17

在重新设置之前,您是否尝试过调用[myDict removeObjectForKey:@"myKey"]

票数 0
EN

Stack Overflow用户

发布于 2011-10-14 14:03:49

它工作正常

代码语言:javascript
复制
NSMutableArray *myArr = [NSMutableArray arrayWithArray:[myDict objectForKey:@"myKey"]];
[myArr addObject:@"New string xxx"];
[myDict setObject:myArr forKey:@"myKey"];
[myDict writeToFile:@"/path/p.text" atomically:NO];
[myArr addObject:@"new object"];
[myDict setObject:myArr forKey:@"myKey"];
[myDict writeToFile:@"/path/p.text" atomically:NO];

输出:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>myKey</key>
    <array>
        <string>New string xxx</string>
        <string>new object</string>
    </array>
</dict>
</plist>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7762712

复制
相关文章

相似问题

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