Как установить текст метки как нечто из NSMutableArray? - PullRequest
0 голосов
/ 28 ноября 2011

Я пытаюсь понять, как установить метку в качестве текста из массива при нажатии кнопки. Когда я нажимаю кнопку, ярлык исчезает, а затем ничего не появляется. Нет ошибок в коде.

Соответствующий код:

-(void)setupArray {

    wordArray = [[NSMutableArray alloc] init];
    [wordArray addObject:@"test1"];
    [wordArray addObject:@"test2"];
    [wordArray addObject:@"test3"];
}

- (IBAction)start:(id)sender {

    int value = (arc4random() % 3) + 1;

    self.typeThis.text = [self.wordArray objectAtIndex:value];

}

typeЭто имя метки, и я думаю, что уже все подключил, т. Е. Настроил кнопки / делегаты / и т.д ... Я не понимаю, почему это не работает. Кто-нибудь может помочь?

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

учитывая, что вы все правильно связали и не находитесь под ARC. Вот вещь, которая может вызвать у вас проблему. когда вы alloc ating wordArray, вы можете попробовать использовать следующий фрагмент кода.

NSMutableArray tempArray = [[NSMutableArray alloc] init];
self.wordArray = tempArray;
[tempArray release];

если вы находитесь под ARC, вы можете попробовать self.wordArray = [NSMutableArray array];

затем добавьте объекты к self.wordArray, т.е. [self.wordArray addObject:@"test1"];. Вот некоторое объяснение о arc4random().

РЕДАКТИРОВАТЬ: Вот публичная спецификация для автоматического подсчета ссылок и цитата из общедоступной страницы iOS 5 :

Автоматический подсчет ссылок (ARC) для Objective-C делает память управление работой компилятора. Включив ARC с новым Apple LLVM-компилятор, вам больше никогда не потребуется набирать retain или release, значительно упростить процесс разработки, одновременно уменьшая сбои и утечки памяти. Компилятор имеет полное понимание ваши объекты, и освобождает каждый объект в тот момент, когда он больше не приложения работают так же быстро, как и всегда, с предсказуемым, плавным производительность.

Можно определить, включен ли ARC. Просто добавьте следующий фрагмент в любой файл, для которого требуется ARC.

#ifndef __has_feature
  #define __has_feature(x) 0 /* for non-clang compilers */
#endif

#if !__has_feature(objc_arc)
  #error ARC must be enabled!
#endif

Дополнительная информация: http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension

НТН.

1 голос
/ 28 ноября 2011

Ваш '+1' дает вам результат от 1 до 3, а ваши индексы от 0 до 2, поэтому я ожидаю, что один раз он будет неправильным в 3.

0 голосов
/ 28 ноября 2011

Это под ARC? Если да, является ли wordArray объявленным сильным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...