replaceObjectAtIndex给出了一个错误,无法弄清楚为什么?

时间:2011-03-15 02:23:41

标签: iphone objective-c nsmutablearray

所以这就是我的代码:

[dataCenter.tempPalette replaceObjectAtIndex:9 withObject:selectedColour];

对象9确实存在,并且它当前是一个int(不确定是否重要)。 selectedColour也是一个int。 dataCenter.tempPalette是一个NSMutableArray。

它给我的错误是:

传递'replaceObjectsAtIndex:withObject:'的参数2,使整数指针不带强制转换。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

整数不是对象。如果要在NSMutableArray中存储整数,则需要首先使用+ [NSNumber numberWithInt:]将它们转换为NSNumbers。错误消息抱怨您正在传递一个需要指针(对象)的int。

答案 1 :(得分:0)

replaceObjectAtIndex的第二个参数需要是指向对象的有效指针。从您的描述中,听起来您正在尝试传入一个int值(selectedColour),它不是对象的有效引用。

我相信,您希望将引用传递给实际的颜色对象,而不是传入selectedColour int值。这可能是对UIColor对象的引用。

另外请记住,如果您尝试存储许多表示相同颜色的对象。为了有效地使用内存,您可能希望在tempPallette数组中存储指向使用相同颜色的条目的相同颜色对象的引用。

希望这会有所帮助。祝你好运。