通过Obj-C数组迭代
答
“导航”是一个相当含糊的术语,因为它可能意味着“循环”或“索引”。 “迭代”是“循环”的同义词。有时候人们对“索引”使用“取消引用”,但是当访问指向的内容时,取消引用仅适用于指针。在一些语言中,如C,索引涉及解引用(这就是为什么解引用是以这种方式使用的),但通常情况并非如此,Objective-C中的NSArray
并非如此。
与大多数其他语言一样,Objective-C中的数组只是整数索引。字典是由字符串索引的数据结构;在Objective-C中,字典有NSDictionary
和NSMutableDictionary
。字典也被称为“关联数组”,在讨论PHP时经常缩短为“数组”,因为PHP中的所有数组都是关联的。使用setObject:forKey:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:120.50],@"balance",
@"myuser",@"username"
nil];
NSLog(@"%@", [dict objectForKey:@"balance"]);
NSLog(@"%@", [dict objectForKey:@"username"]);
您可以将项目添加到NSMutableDictionary
:与objectForKey:
法字典
您指数
// mutableDict is an owning reference; if not using ARC, it must be released
NSMutableDictionary *mutableDict = [dict mutableCopyWithZone:NULL];
[mutableDict setObject:@"bar" forKey:@"foo"];
你也可以遍历与fast enumeration语法键:
for (id key in dict) {
NSLog(@"%@: %@", key, [dict objectForKey:key]);
}
Bot h迭代和索引是最基本的数组操作。如果您目前的Objective-C信息来源没有讨论它们,请找到新的来源。如果你没有源,找一个。没有一个你永远不会学到你所需要的一切。
参见:
ü意味着NSDictionary的对象? [someObject objectForKey:“”]或你的对象究竟是什么? – 2012-02-04 08:03:28
Xcode是一个IDE,它没有数组。你的意思是Objective-C吗?那么,ObjC究竟是什么? – deceze 2012-02-04 08:18:17
“导航”,你的意思是循环或索引?请注意,Objective-C数组(仅在其他语言中)仅由整数索引。如果你需要字符串索引,你可以使用字典(['NSDictionary'](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdictionary_Class/Reference/Reference.html) ,在ObjC)。字典也被称为“关联数组”,因此是PHP术语。 – outis 2012-02-04 10:10:18