Как преобразовать указатель в объект? - PullRequest
0 голосов
/ 30 августа 2010

Я использовал что-то вроде этого: [tmpArray insertObject: нечто [i] atIndex: i];

Но я получил MSG: передавая аргумент 1 "insertObject: atIndex:" делает указатель из целого числа без приведения.

Что мне сделать, чтобы это исправить?

Ответы [ 2 ]

1 голос
/ 30 августа 2010

Вы не можете волшебным образом сделать случайный указатель на объект, вам нужно понять, какой тип указателя, и сделать что-то семантически разумное с этим типом.Кроме того, это не та ошибка, которую вы видите.Ошибка в том, что ожидаемый тип - это указатель (а объект в ObjC также является типом указателя), а информация о типе передаваемого объекта - скаляр.

Принимая дикие предположения, something - это, вероятно, массив целых чисел, если вы хотите, чтобы wrap - это целое число в NSNumber для сохранения его в коллекции:*

Очевидно, вам нужно будет распаковать значение в любом месте, где вы к нему обращаетесь.Если это не массив целых чисел, вам нужно будет заняться чем-то другим (хотя, вероятно, похожим), но без дополнительной информации я не могу точно сказать, что именно.

1 голос
/ 30 августа 2010

Полагаю, ваш массив something[] является массивом C int, если это так, вы не можете передать его значение в этой позиции в NSArray, поскольку он содержит объекты (а на объекты в obj-C ссылаются указатели ).

То, что вы могли бы сделать, это заключить int в NSNumber таким образом : [tmpArray insertObject:[NSNumber numberWithInt:something[i]] atIndex:i];

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