Массив не сохраняется должным образом? - PullRequest
0 голосов
/ 02 сентября 2011

Я получаю следующую ошибку при запуске моего приложения:

2011-09-02 15: 38: 44.157 TheApp [9973: 207] - [NSCFNumber isEqualToString:]: нераспознанный селектор, отправленный экземпляру 0x4b28990

2011-09-02 15: 38: 44.160 TheApp [9973: 207] *** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [NSCFNumber isEqualToString:]: нераспознанный селектор, отправленный экземпляру 0x4b28990'

И Xcode отмечает строку в этой функции зеленым цветом:

- (void)oneCheckAndSetStrokes {
playerOneScoreNum.text = [playerOneScore objectAtIndex:(11)]; }

Поэтому я предполагаю, что что-то не так с Массивом. После исследования сома я наткнулся на множество постов, подобных этому: NSMutableArray: нераспознанный селектор, отправленный на экземпляр , который, как кажется, указывает на то, что ошибка возникает, когда массив не сохраняется должным образом (отсюда и мой заголовок).

Поэтому я пытаюсь сохранить массив в файле, в котором он был инициирован (кстати, это не тот же файл, что и в коде выше. Массив также определен в другом файле, Globals.h, а затем импортировано), следующим образом:

- (void)viewDidLoad {
[super viewDidLoad];
playerOneScore = [[NSMutableArray alloc] initWithCapacity:19];
[playerOneScore retain]; }

Это решило бы проблему в соответствии с постом, упомянутым ранее, но в моем случае это не так. Кто-нибудь сталкивался с чем-то подобным? Кажется, здесь я что-то упускаю.

Спасибо, Тобиас Товедал

1 Ответ

3 голосов
/ 02 сентября 2011

Ошибка, которую вы получили, не имеет ничего общего с сохранением, вы получили эту ошибку, потому что в этой строке:

playerOneScoreNum.text = [playerOneScore objectAtIndex:(11)];

вы пытаетесь установить строковое свойство, используя числовой объект! Вы должны использовать "stringValue", таким образом:

playerOneScoreNum.text = [[playerOneScore objectAtIndex:11] stringValue];

пс: перенос индекса (11) в круглых скобках бесполезен: P

...