objective-C中,如何使用foreach循环遍历NSMutableArray中的索引(键)和对象
In objective-C, how to traverse indexes (keys) and objects in NSMutableArray using foreach loop
是否可以像遍历PHP中的关联数组一样遍历NSMutableArray,使用"foreach"循环?我想在每个循环传递中获得 "key" 和 "value"。我有一个 NSMutableArray,我想将它用作关联数组,遍历它并以与更改 PHP 中的关联数组相同的方式更改它。这是可能的,还是我必须使用一些更复杂的结构,比如 NSMutableDictionary - 为此目的?
如果你想使用一个NSMutableArray
那么你可以使用下面的代码在访问索引和对象的同时遍历数组:
NSMutableArray *someArray = ...;
for (NSUInteger index = 0; index < someArray.count; index++) {
NSNumber *object = someArray[index]; // Assuming the array stores NSNumber*s
...
}
另一种选择是使用 SDK 提供的枚举块:
NSMutableArray *someArray = ...;
[someArray enumerateObjectsUsingBlock:^(NSNumber* object, NSUInteger index, BOOL *stop) {
...
}];
请记住,数组有索引而不是自定义键。索引必须从 0 开始,中间不能有任何间隙。如果您想要这种行为,请使用 NSMutableDictionary
.
是否可以像遍历PHP中的关联数组一样遍历NSMutableArray,使用"foreach"循环?我想在每个循环传递中获得 "key" 和 "value"。我有一个 NSMutableArray,我想将它用作关联数组,遍历它并以与更改 PHP 中的关联数组相同的方式更改它。这是可能的,还是我必须使用一些更复杂的结构,比如 NSMutableDictionary - 为此目的?
如果你想使用一个NSMutableArray
那么你可以使用下面的代码在访问索引和对象的同时遍历数组:
NSMutableArray *someArray = ...;
for (NSUInteger index = 0; index < someArray.count; index++) {
NSNumber *object = someArray[index]; // Assuming the array stores NSNumber*s
...
}
另一种选择是使用 SDK 提供的枚举块:
NSMutableArray *someArray = ...;
[someArray enumerateObjectsUsingBlock:^(NSNumber* object, NSUInteger index, BOOL *stop) {
...
}];
请记住,数组有索引而不是自定义键。索引必须从 0 开始,中间不能有任何间隙。如果您想要这种行为,请使用 NSMutableDictionary
.