NSMutableArray Exc_Bad_Access
问题描述:
我只有m代码。文件NSMutableArray Exc_Bad_Access
NSMutableArray * arrayOfBools;
arrayOfBools=[[NSMutableArray alloc] initWithCapacity:1000];
NSNumber *ijk =(NSNumber*) 9;
[arrayOfBools addObject:ijk];
获取错误o [arrayOfBools addObject:ijk];
答
你不能像这样声明和设置一个NSNumber:NSNumber *ijk =(NSNumber*) 9;
。 这将设置为一个整数(9)。
使用此:
NSNumber *ijk = [NSNumber numberWithInt:9];
答
第三行中,NSNumber的声明是不正确。如果你试图把一个布尔值换成NSNumber,使用NSNumber *test = [NSNumber numberWithBool:YES];
Obj-C不会自动在不同类型之间进行转换,并且你正在用'(NSNumber *)'进行的操作称为类型转换,除非你知道你在做什么,应该避免。在这个例子中,你将一个整数转换成一个指针,并带来灾难性的结果。 – lucius 2010-07-12 15:43:16