我有一个包含5个子数组的数组,我正试图循环, 我可以访问第一个子数组及其对象,但是当我增加变量计数并尝试访问第二个子数组时,我的程序会以更好的方式崩溃任何想法吗?这是我的一般方法:
-(void) accessArray {
NSArray *myArray; // my array that holds sub arrays
int count = 0; //used to hold which sub array im accesing
NSArray *subArray = [myArray objectAtIndex:count];
//do something with object = [subArray objectAtIndex:0];
//do something with object = [subArray objectAtIndex:1];
}
-(void) otherMethod {
count ++
[self accessArray];
}
答案 0 :(得分:2)
for (NSArray *inner in outerArray)
for (id object in inner) {
... do stuff ...
}
}
答案 1 :(得分:0)
除了bbums答案,您还可以使用NSRange
制作子数组(例如来自NSArray Class Reference):
NSArray *halfArray;
NSRange theRange;
theRange.location = 0;
theRange.length = [wholeArray count] / 2;
halfArray = [wholeArray subarrayWithRange:theRange];
只说这个,因为看起来这可能是你想要做的。这不会遍历对象,但在尝试从其他人创建新数组时非常方便。
答案 2 :(得分:0)
如果你真的想用自己的方式去做(即通过'otherMethod'访问子数组),你需要让两个方法都可以访问'count'变量:
int count = 0; // used to hold which sub array I'm accessing
-(void) accessArray {
NSArray *myArray; // my array that holds sub arrays
NSArray *subArray = [myArray objectAtIndex:count];
// do something with object = [subArray objectAtIndex:0];
// do something with object = [subArray objectAtIndex:1];
}
-(void) otherMethod {
count++; // Cannot access count if defined inside 'accessArray'
[self accessArray];
}
现在您可以使用'otherMethod'来访问子数组。但我认为最好的方法是在bbum上面的第一个答案中给出。