从字典对象中获取密钥?

the*_*ick 3 iphone objective-c plist

我有一个字典设置如下.如何从中获取实际键值(演员姓名)objectAtIndex:1

<plist version="1.0">
<dict>
    <key>Brad Pitt</key>
    <array>
        <string>Fight Club</string>
        <string>Seven</string>
        <string>Inglorious Basterds</string>
        <string>Babel</string>
    </array>
    <key>Meryl Streep</key>
    <array>
        <string>Adaptation</string>
        <string>The Devil Wears Prada</string>
        <string>Doubt</string>
        <string>Julie &amp; Julia</string>
    </array>
    <key>Chris Cooper</key>
    <array>
        <string>Adaptation</string>
        <string>American Beauty</string>
        <string>The Bourne Identity</string>
        <string>October Sky</string>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

Dav*_*ong 5

蛮力:

- (NSString *)actorForFilm:(NSString *)film {
    NSDictionary * dictionary = ...; //your dictionary as read from the plist
    for (NSString * actorName in dictionary) {
        NSArray * films = [dictionary objectForKey:actorName];
        if ([films containsObject:film]) {
            return actorName;
        }
    }
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

如果要从字典中返回随机密钥,可以执行以下操作:

NSArray * allKeys = [dictionary allKeys];
NSString * randomKey = [allKeys objectAtIndex:(arc4random() % [allKeys count])];
Run Code Online (Sandbox Code Playgroud)