Ошибка «NSInvalidArgumentException» при добавлении данных в UITable? - PullRequest
0 голосов
/ 19 февраля 2011

Итак, это настройка моего приложения. На мой взгляд, загрузил метод, я создаю NSMutableArray и инициализирую его списком объектов (используя метод initWithObjects:). Этот массив get загружается в табличное представление без каких-либо проблем. Я также добавил кнопку «+» на панели навигации, чтобы добавить данные в мою таблицу. Моя проблема в том, что каждый раз, когда я нажимаю «+», мое приложение зависает, и я получаю сигнал SIGABRT. Может кто-нибудь сказать мне, что я делаю не так?

Я сохранил массив, используя свойство, и я синтезировал его. Я также выпускаю это в методе dealloc.

Я создаю массив следующим образом:

NSMutableArray *array = [[NSArray alloc] initWithObjects:@"data 1", @"data 2", @"data 3", nil];
self.myArray = array;
[array release];

Я создаю кнопку "+" в навигационной панели с помощью:

UIBarButtonItem *addDataButton = [[UIBarButtonItem alloc] initWithTitle:@"+" 
                                                                     style:UIBarButtonItemStyleBordered 
                                                                    target:self 
                                                                    action:@selector(addData)];

Мой метод добавления данных:

- (void)addData {

    [myArray addObject:@"some data"];
    [self.tableView reloadData];

}

Кроме того, если это вообще помогает, я получаю сообщение об ошибке в консоли:

2011-02-19 13:02:09.987 MyApp[480:307] -[__NSArrayI addObject:]: unrecognized selector sent to instance 0x1bee50
2011-02-19 13:02:10.020 MyApp[480:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x1bee50'

1 Ответ

2 голосов
/ 19 февраля 2011

Вы создаете NSArray, а не NSMutableArray, поэтому вы не можете добавлять к нему объекты. Измените инициализацию массива на:

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"data 1", @"data 2", @"data 3", nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...