Chr*_*ris 1 iphone debugging objective-c
这可能是显而易见的,但我看不到它......
NSLog(@"nthObject = %i, [mutableFetchResults count] - 1 = %i", nthObject, [mutableFetchResults count] - 1);
if (nthObject <= [mutableFetchResults count] - 1) {
MyObject *myObject = [mutableFetchResults objectAtIndex:nthObject];
Run Code Online (Sandbox Code Playgroud)
mutableFetchResults的计数为零,因此[mutableFetchResults count] - 1 = -1且nthObject为0.这由Log证实.
nthObject是传递给方法的int.
因此,of语句应该说if(0 <= -1)因此不会触发MyObject*myObject = [mutableFetchResults objectAtIndex:nthObject]行,但是它会在尝试访问空数组时导致崩溃.
有任何想法吗?
非常感谢,
克里斯.
我假设那mutableFetchResults是NSMutableArray(子类NSArray).该count成员是一个NSUInteger未签名的成员,所以[mutableFetchResults count] - 1不会消极 - 它包裹成为一个非常大的数字.
将您的测试更改为:
if (nthObject < [mutableFetchResults count])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |