Предполагая, что вы объявили int[] infoData
, вы можете сделать возврат int*
, но у вас все еще будут проблемы, потому что массив расположен в стеке функции. Вам нужно будет динамически распределять пространство для него так же, как в C.
(Вы не можете использовать int[]
в качестве типа возврата)
Приведенный ниже код скомпилируется, но gcc предупредит о возвращении адреса локальной переменной функции.
@interface test
- (int*) function;
@end
@implementation test
- (int*) function{
unsigned int first = 0;
unsigned int second = 1;
unsigned int third = 2;
int infoData[] = {first,second,third};
return infoData;
}
@end