Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 查询NSD词典_Ios_Key Value - Fatal编程技术网

Ios 查询NSD词典

Ios 查询NSD词典,ios,key-value,Ios,Key Value,我对查询NSDictionary的正确或最有效的方法感到困惑。我有一个由字典填充的可变数组。看起来像这样 <array> <dict> <key>title</key> <string>entry1</string> <key>checkedState</key> <string>NO</string>

我对查询NSDictionary的正确或最有效的方法感到困惑。我有一个由字典填充的可变数组。看起来像这样

<array>
    <dict>
        <key>title</key>
        <string>entry1</string>
        <key>checkedState</key>
        <string>NO</string>
    </dict>
    <dict>
        <key>title</key>
        <string>accessoriesImage</string>
        <key>checkedState</key>
        <string>NO</string>
    </dict>
    <dict>
        <key>title</key>
        <string>activationCharge</string>
        <key>checkedState</key>
        <string>NO</string>
    </dict>
我想测试的是标题,它是checkedState,然后根据它采取行动。i、 e.如果Title=entry1且其checkedState=NO,则将其checkedState设置为YES。像这样的事情,但这是错误的-我知道这是错误的-我只是不明白

if [([[attributesArray valueForKey:kTitleKey] isEqualToString:@"All"] && [[attributesArray valueForKey:kCheckedState] isEqualToString:@"NO"]) {
[attributesArray setValue:kCheckedState = @"NO" forKey:@"entry1"];
}
是的,我看过苹果文档中的键值编码,但我不明白。这就是我来这里的原因。:)

*注意:这要求数组包含可变字典*


**另外:我会在你的plist中将“checked”变成布尔值*/

是的,字典是可变的。我喜欢你的回答,但是我认为这只解决了我一半的问题。我正在尝试测试kCheckedState的“entry1”值,然后执行该操作。您的解决方案找到entry1,然后设置checkedState。看到问题了吗?
if [([[attributesArray valueForKey:kTitleKey] isEqualToString:@"All"] && [[attributesArray valueForKey:kCheckedState] isEqualToString:@"NO"]) {
[attributesArray setValue:kCheckedState = @"NO" forKey:@"entry1"];
}
for(id dict in array /*your original plist is an array for you*/) {
    if([dict[kTitleKey] isEqualTo:@"entry1"]) {
        if([dict[kCheckedKey] isEqualToString:@"YES"]) {
             //process
        }
    }
}