NSMutableArray在执行时转换为UICachedDeviceRGBColor

时间:2009-10-01 17:09:27

标签: iphone objective-c cocoa-touch iphone-sdk-3.1

现在我正在开发一个iPhone项目,我正在使用类NSMutableArray的实例,并且在执行时突然无法将NSMutableArray转换为UICachedDeviceRGBColor变得无法使用

我不知道该怎么做,同样的物体一直运作到今天。

我收到了这个错误:

*** -[UICachedDeviceRGBColor count]: unrecognized selector sent to instance 0x4b3e440

1 个答案:

答案 0 :(得分:4)

下次,将代码贴在问题中,而不是评论中。这里格式很好:

NSMutableArray *currentIngsGroup = [[NSMutableArray alloc] init];
currentIngsGroup = (NSMutableArray *)[allIngredientGroups objectAtIndex:0];
NSLog(@"accesing array %d", [currentIngsGroup count]); 

通常,我会说你描述的症状表明你过度释放某些东西。但是,代码表明了对Objective-C的基本缺乏理解。我建议阅读Introduction to Objective-C文件。

特别是,您在第一行代码中分配了一个NSMutableArray实例。但是,第二行会立即覆盖可变数组引用,并引用allIngredientGroups数组索引0处的任何对象。

(NSMutableArray *)完全没必要。它不会强制数组中的任何对象都是可变数组,并且由于-objectAtIndex:返回(id),因此不需要强制转换。

BTW:第一行分配的阵列正在泄露。再次阅读objective-c的介绍以了解原因。