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";

そして、私がしたいのは、タイトルをテストし、それがcheckedStateであり、それに基づいて行動することです。つまり、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 に答える