3

有人可以向我解释以下结果吗?

//generate an array with 4 objects
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
                         [NSNumber numberWithInt:1],
                         [NSNumber numberWithInt:2],
                         [NSNumber numberWithInt:3],
                         [NSNumber numberWithInt:4],
                         nil];
//release the array    
[array release];

//get a count of the number of elements in the array
int count = [array count]; <---  count returns 4

我的计数不应该为零吗?“释放”不会从数组中删除所有元素吗?

4

1 回答 1

6

的值count是未定义的,因为在release数组的最后一次访问属性之后是非法的:本质上,您正在访问一个悬空指针。

如果您想清除数组而不使其无效,请使用removeAllObjectsmethod.

于 2012-07-19T14:02:59.957 回答