1
4

5 回答 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 回答