Как преобразовать целевой массив C в массив C? - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть NSArray в Objective C, который хранит только int. Как я могу преобразовать его в массив C? Спасибо.

Массив My Objective C:

NSArray *myArray = [[NSArray alloc] initWithObject:@"1", @"4", @"8", nil];

Ответы [ 2 ]

0 голосов
/ 06 сентября 2010

Я полагаю, что вы не можете явно, так как NSArray инкапсулирует массив C, но массив указателей на объекты, на которые ссылаются.Таким образом, лучшее, что вы можете получить, - это получить (в действительности, копию) этот массив указателей.Если вы хотите получить значения объектов, вам нужно «запросить» их значения, посмотрите здесь

0 голосов
/ 06 сентября 2010

Выделите кусок памяти, используя malloc для хранения достаточного количества элементов (в данном случае NSString* s) и итерируйте NSArray, добавляя каждый элемент (и сохраняя каждый элемент) в соответствующую позицию в массиве c.

Не забывайте при этом, вам нужно будет отправить сообщение release каждому члену в массиве c, когда вы закончите с ним, прежде чем вам также придется free() сам массив.

...