replaceObjectAtIndex выдает ошибку, не можете понять, почему? - PullRequest
0 голосов
/ 15 марта 2011

Итак, это код, который у меня есть:

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

Объект 9 существует, и в настоящее время это int (не уверен, имеет ли это значение).selectedColour также является int.dataCenter.tempPalette является NSMutableArray.

Ошибка, которую он мне дает, заключается в следующем:

Передача аргумента 2 для параметра replaceObjectsAtIndex: withObject: 'делает указатель из целого числа без приведения.

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 15 марта 2011

целые не являются объектами.Если вы хотите хранить целые числа в NSMutableArray, вам нужно сначала превратить их в NSNumbers, используя + [NSNumber numberWithInt:].Сообщение об ошибке жалуется, что вы передаете int, где требуется указатель (на объект).

0 голосов
/ 15 марта 2011

Второй параметр replaceObjectAtIndex должен быть действительным указателем на объект.Из вашего описания звучит так, будто вы пытаетесь передать значение типа int (selectedColour), которое не является допустимой ссылкой на объект.

Я считаю, что вместо передачи значения selectedColour int вы хотите передать ссылку на фактический цветовой объект.Вероятно, это будет ссылка на объект UIColor.

Также имейте в виду, если вы пытаетесь сохранить много объектов, представляющих один и тот же цвет.В целях эффективного использования памяти вы, вероятно, захотите сохранить в своем массиве tempPallette ссылки, указывающие на один и тот же цветовой объект для тех записей, которые используют тот же цвет.

Надеюсь, это поможет.Удачи.

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