0

现在我正在处理一个 iPhone 项目,并且我正在使用该类的实例,NSMutableArray突然,在执行时,无缘无故地NSMutableArray转换为一个UICachedDeviceRGBColor变得无法使用。

我不知道该怎么办,直到今天,同一个对象一直运行良好。

我收到了这个错误:

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

1 回答 1

4

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

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

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

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

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

顺便说一句:第一行分配的数组正在泄漏。再次阅读objective-c 的介绍以了解原因。

于 2009-10-01T18:16:40.630 回答