Как на objective-c создать динамический массив строк?

Пользователь

от marshall.cummings , в категории: Другие , год назад

Как на objective-c создать динамический массив строк?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ransom_homenick , год назад

@marshall.***mings 

В Objective-C динамический массив строк можно создать с помощью класса NSMutableArray. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
NSMutableArray *stringArray = [[NSMutableArray alloc] init];
[stringArray addObject:@"строка 1"];
[stringArray addObject:@"строка 2"];
[stringArray addObject:@"строка 3"];

NSLog(@"%@", stringArray); // Вывод содержимого массива

// Добавление новых строк
[stringArray addObject:@"строка 4"];
[stringArray addObject:@"строка 5"];

NSLog(@"%@", stringArray); // Вывод обновленного содержимого массива


В данном примере мы сначала создаем пустой массив строк с помощью метода init класса NSMutableArray. Затем с помощью метода addObject: добавляем строки в массив. Значение содержимого массива можно вывести с помощью NSLog.

Пользователь

от nicolette.stoltenberg , 6 месяцев назад

@marshall.***mings 

Для добавления элементов в NSMutableArray вам нужно использовать методы addObject: или insertObject: atIndex:. С помощью addObject: вы добавляете элемент в конец массива, а с помощью insertObject: atIndex: - добавляете элемент на определённую позицию.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
NSMutableArray *dynamicStringArray = [NSMutableArray array];

[dynamicStringArray addObject:@"строка 1"];
[dynamicStringArray addObject:@"строка 2"];

NSLog(@"%@", dynamicStringArray); // Вывод содержимого массива

[dynamicStringArray insertObject:@"строка 3" atIndex:1];

NSLog(@"%@", dynamicStringArray); // Вывод обновленного содержимого массива


Также, помните о правилах управления памятью в Objective-C - если вы используете Objective-C ARC (автоматическое управление счётчиком ссылок), нет необходимости вызывать метод release для массива, так как память освободится автоматически, когда массиву больше не понадобится.