问问题
3175 次
5 回答
6
直到你不初始化你的指针(color4),它指向一个未定义的位置,在那里可能没有对象,只有垃圾。也许它甚至不是一个有效的menory位置。取消引用时,它会自然崩溃。您需要将其初始化为有效对象。
此外,该对象不能是nil
,否则 NSMutableArray 本身将引发异常。
于 2012-08-03T05:52:30.873 回答
3
color4 未初始化,您尝试在数组中插入 nil。像其他颜色一样初始化 color4。
于 2012-08-03T05:50:43.657 回答
2
当您将 Color4 添加到数组时,它是 nil。NSMutableArrays 是 nil 终止的。这意味着 NSMutableArray 中的最后一个元素是 nil。您不能手动将 nil 对象添加到数组中,这意味着 nil 对象之后的数据将被忽略!
以下代码产生异常:
NSMutableArray *array = [[NSMutableArray alloc] init];
UIColor *color;
[array addObject:color];
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSArrayM insertObject:atIndex:]: object cannot be nil”
解决方案是在将 color4 变量添加到数组之前对其进行初始化。
于 2012-08-03T05:51:02.210 回答
0
您需要创建第一个 UIColor 对象并像这样添加数组
NSArray *mycolorsArray = [[NSArray alloc] initWithObjects:color1, color2, nil];
于 2012-08-03T06:30:58.640 回答
0
尝试:
UIColor* color1 = [UIColor blueColor];
UIColor* color2 = [UIColor greenColor];
UIColor* color3 = [UIColor whiteColor];
UIColor* color4 = [[UIColor alloc] init];
NSMutableArray* arrayColor = [[NSMutableArray alloc] initWithObjects:color1, color2, nil ];
[arrayColor addObject:color3];
[arrayColor addObject:color4];
于 2012-08-03T05:56:22.270 回答