我收到错误:
*** -[NSArray subarrayWithRange:]: index 9779 beyond bounds [0 .. 9776]'
***
我不知道如何解决它。
如果你能告诉我那会很棒!
NSArray *keys = [NSArray arrayWithObjects:@"type", @"name", @"street", @"address1", @"address2", @"town", @"county", @"postcode", @"number", @"coffee club", @"latitude", @"longitude", nil];
for (int i = 0; i < [chunks count]; i += [keys count])
{
NSArray *subarray = [chunks subarrayWithRange:NSMakeRange(i, [keys count])];
NSDictionary *dict = [[NSDictionary alloc] initWithObjects:subarray forKeys:keys];
NSLog(@"%@", dict);
// do something with dict
[dict release];
}
答案 0 :(得分:4)
您没有说明代码段中有哪些块。 我猜错误是你正在访问块数组的边界。
也许这样的事情会更好:
for (int i = 0; i + [keys count] <= [chunks count]; i += [keys count])
详细说明一下。你正在采用一个从i开始并进入[keys count]更多元素的子数组,但是没有检查i + [keys count]没有超过块数组大小。也许这会导致问题?
答案 1 :(得分:1)
NSMakeRange无法正常工作。 forst参数是起始索引,第二个是子数组的长度。 在您的情况下,您的代码应如下所示:
NSArray *subarray = [chunks subarrayWithRange:NSMakeRange(i, [keys count] - i)];
这就是为什么你得到“索引越界”的例外。