现在我正在处理一个 iPhone 项目,并且我正在使用该类的实例,NSMutableArray
突然,在执行时,无缘无故地NSMutableArray
转换为一个UICachedDeviceRGBColor
变得无法使用。
我不知道该怎么办,直到今天,同一个对象一直运行良好。
我收到了这个错误:
*** -[UICachedDeviceRGBColor count]: unrecognized selector sent to instance 0x4b3e440
现在我正在处理一个 iPhone 项目,并且我正在使用该类的实例,NSMutableArray
突然,在执行时,无缘无故地NSMutableArray
转换为一个UICachedDeviceRGBColor
变得无法使用。
我不知道该怎么办,直到今天,同一个对象一直运行良好。
我收到了这个错误:
*** -[UICachedDeviceRGBColor count]: unrecognized selector sent to instance 0x4b3e440
下次,将您的代码粘贴在您的问题中,而不是评论中。这里的格式很好:
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 的介绍以了解原因。