NSMutableArray, преобразованный в UICachedDeviceRGBColor во время выполнения - PullRequest
0 голосов
/ 01 октября 2009

Сейчас я работаю над проектом iPhone и использую экземпляры класса NSMutableArray, и внезапно, без причины, во время выполнения NSMutableArray превращается в UICachedDeviceRGBColor, становясь непригодным для использования.

Я не знаю, что делать, тот же объект до сегодняшнего дня работал нормально.

Я получил эту ошибку:

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

1 Ответ

4 голосов
/ 01 октября 2009

В следующий раз вставьте свой код в вопрос, а не в комментарий. Вот это красиво отформатировано:

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: возвращает (id), приведение не требуется.

Кстати: массив, выделенный в первой строке, просачивается. Снова прочтите введение в цель-c, чтобы понять, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...