0

我对查询 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>

还有几个静态条目:

static NSString *kTitleKey = @"title";
static NSString *kCheckedState = @"checkedState";

而我想要的是测试 Title 并且它是 checkState 然后采取行动。即如果Title = entry1 并且它的checkedState = NO 然后将它的checkedState 设置为YES。像这样的东西,但这是错误的——我知道这是错误的——我只是不明白。

if [([[attributesArray valueForKey:kTitleKey] isEqualToString:@"All"] && [[attributesArray valueForKey:kCheckedState] isEqualToString:@"NO"]) {
[attributesArray setValue:kCheckedState = @"NO" forKey:@"entry1"];
}

是的,我看过 Apple 文档中的键值编码,但我不明白。这就是我在这里的原因。:)

4

1 回答 1

0
for(id dict in array /*your original plist is an array for you*/) {
    if([dict[kTitleKey] isEqualTo:@"entry1"]) {
        if([dict[kCheckedKey] isEqualToString:@"YES"]) {
             //process
        }
    }
}

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

** 另外:我会在您的 plist 中将 'checked' 设为布尔值... */

于 2012-11-23T15:22:51.780 回答