Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Как в objective-c передать массив NSString в метод?

#ios #objective_c #xcode


В objective-c мне необходимо передать в метод двумерный массив NSString. Я его объявляю
NSString *products[10][10];, потом присваиваю какие-то значения, и не могу написать
метод, чтобы он принимал его.
Компилятор не пропускает такие объявления:

-(void) Array : (NSString *) array[][];
-(void) Array : (NSSting[][] *) array;


А так же охота, чтобы метод возвращал двумерный массив NSString. Т.е. такое тоже
не проходит:

-(NSString[][] *) ArrayCount : (int) count;


Помогите, пожалуйста! Как правильно писать такие методы, которые бы принимали и возвращали
двумерный массив NSString? Или такое вообще не возможно?
    


Ответы

Ответ 1



Традиционно в ObjC нет двумерных массивов — вместо них используется такое понятие как "массив массивов". То есть массив, каждым элементом которого является другой массив. Объявить его можно либо: NSArray *row1 = @[@"string1", @"string2"]; NSArray *row2 = @[@"string3", @"string4"]; NSArray *container = @[row1, row2]; либо: NSArray *container = @[@[@"string1", @"string2"], @[@"string3", @"string4"]]; и далее вы передаёте в метод массив container. Чтобы получить элемент из массива: container[0][0]; Так же надо добавить, что поскольку ObjC основан на C, любой C-код будет работать, включая 2D массивы, но тогда и те методы, куда эти массивы передаются надо писать на C.

Комментариев нет:

Отправить комментарий