迭代Obj-C数组

Riv*_*ers -3 arrays objective-c nsdictionary nsarray

如何在Objective-C中浏览数组?以下面的例子为例.

    (
        [key] => value
        [key] => value
    )
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

6年后,我意识到这个问题是多么愚蠢.我很抱歉Stack Overflow.

out*_*tis 7

"导航"是一个相当模糊的术语,因为它可能意味着"循环"或"索引"."迭代"是"循环"的同义词.有时人们使用"dereference"作为"index",但是在访问指向的内容时,解除引用仅适用于指针.在某些语言中,例如C,索引涉及解除引用(这就是以这种方式使用解除引用的原因),但这通常不正确,而NSArray在Objective-C中则不然.

Objective-C中的数组与大多数其他语言一样,只是整数索引.字典是由字符串索引的数据结构; 在Objective-C中,字典可以NSDictionaryNSMutableDictionary.字典也称为"关联数组",在谈论PHP时通常会缩短为"数组",因为PHP中的所有数组都是关联的.

使用以下objectForKey:方法索引字典:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithDouble:120.50],@"balance",
    @"myuser",@"username"
    nil];

NSLog(@"%@", [dict objectForKey:@"balance"]);
NSLog(@"%@", [dict objectForKey:@"username"]);
Run Code Online (Sandbox Code Playgroud)

您可以将项目添加到NSMutableDictionary使用中setObject:forKey::

// mutableDict is an owning reference; if not using ARC, it must be released
NSMutableDictionary *mutableDict = [dict mutableCopyWithZone:NULL];
[mutableDict setObject:@"bar" forKey:@"foo"];
Run Code Online (Sandbox Code Playgroud)

您可以使用快速枚举语法循环键:

for (id key in dict) {
    NSLog(@"%@: %@", key, [dict objectForKey:key]);
}
Run Code Online (Sandbox Code Playgroud)

迭代和索引都是最基本的数组操作.如果您目前的Objective-C信息来源没有讨论它们,请找一个新的来源.如果您没有来源,请找一个.如果没有一个,你永远不会学到所需的一切.

也可以看看: