установить текст метки равным значению массива

#ios #objective-c #nsstring #nsarray

#iOS #objective-c #nsstring #nsarray

Вопрос:

В файле myProj.h я объявил:

 @property (strong, nonatomic) NSMutableArray *wordsArray;
  

в файле .m я использую следующее, чтобы добавить некоторые значения в viewDidLoad:

 [_wordsArray addObject:[NSString stringWithFormat:@"Now is the time for all good men to come to the aid of their party."]];
[_wordsArray addObject:[NSString stringWithFormat:@"Four score and seven years ago our forefathers..."]];
[_wordsArray addObject:[NSString stringWithFormat:@"A coward dies many deaths; a brave man but one."]];
  

Я также установил здесь счетчик (определенный как int в файле .h):

 __cntr = 0;
  

В отправителе (IBAction) pressButton: (id) я хочу изменить текст метки (*somelabel) на следующее значение в массиве [0] (затем повторите _cntr до 1 и получите это значение и т.д.). Итак, у меня
есть:

 _somelabel.text = [NSString stringWithFormat:@"%@",[_wordsArray objectAtIndex:__cntr]];
  

Строит, но когда я запускаю и нажимаю кнопку, текст метки превращается в (Null).

Так же как и проблема с добавлением значений в массив или их извлечением. Спасибо

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

1. Для чего у вас есть общедоступное свойство wordsArray ? Другие классы устанавливают массив или получают из него значения? Если нет, это не должно быть общедоступным свойством.

Ответ №1:

Я предполагаю, что вы не инициализировали свой изменяемый массив. В viewDidLoad добавить:

 _wordsArray = [[NSMutableArray alloc] init];
  

перед добавлением к нему каких-либо объектов.