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