我正在尝试检查以下内容并全部抛出越界错误
if ([objects count] < 1)
if ([objects count] == 0)
if ([objects count] <= 0)
三人都出界了?如何在“if/else”语句中使用它?是否无法检查 NSArray 是否包含零个对象。
我正在尝试检查以下内容并全部抛出越界错误
if ([objects count] < 1)
if ([objects count] == 0)
if ([objects count] <= 0)
三人都出界了?如何在“if/else”语句中使用它?是否无法检查 NSArray 是否包含零个对象。
如果你只是定义了指针但没有初始化你的objects
实例,你会得到非常奇怪的行为。作为一个初级可可开发者,我至少被类似的东西烧了两次
NSMutableArray *objects;
...
if ( [objects count] == 0 )
{
.... // do something
}
你确定你初始化了它,例如:
NSMutableArray *objects = [NSMutableArray array];
因为它真的应该在这种情况下工作!
我不认为这些代码行会导致这样的错误。
此代码适用于任何数组。越界异常意味着您尝试调用类似
[myArray objectAtIndex:0];
在一个空数组上。或者,换句话说,您试图访问一个不属于数组的对象。
你也可以试试这个。
if(![objects lastObject])
{
//... Do Something
}
objectAtIndex
您不应该得到越界异常,因为您甚至没有尝试访问数组中的元素——只有在调用数组并指定非法索引时才应该抛出越界异常。
通常,为了防止尝试访问 nil 或空数组,我通常会执行以下操作:
if(!objects || !objects.count) ...
这样,如果objects
不存在则objects.count
不会被调用。