调试mutablearray Range上的gerange错误



我正在尝试调试这行代码。这不是我的代码,但必须找到什么是错的。自我。events是一个NSMutableArray。

- (nullable NSArray<id> *)getEvents:(NSUInteger)numberOfEvents {

if (self.events.count == 0) {
return nil;
}

NSLog(@"min = %ld", MIN(numberOfEvents, self.events.count));

return [self.events subarrayWithRange:NSMakeRange(0, MIN(numberOfEvents, self.events.count))];

}
- (NSUInteger)numberOfEvents {
return self.events.count;
}

本行出现错误

return [self.events subarrayWithRange:NSMakeRange(0, MIN(numberOfEvents, self.events.count))];

I得到以下异常。我无法重现这个错误。在我这边,它可以工作。

EXC_BAD_ACCESS: count>getobject:范围:在试图解引用垃圾指针0x9f1ffdcac950.

任何帮助或想法感谢!

数组从0开始索引。如果你有一个计数为4的数组,它的索引从0到3。

我想你要:

return [self.events subarrayWithRange:NSMakeRange(0, MIN(numberOfEvents, self.events.count - 1))];

最新更新