[NSCFArray row]: нераспознанный селектор отправлен на экземпляр 0x3953a20 - PullRequest
1 голос
/ 17 июня 2010

Я получаю сбой с этим консольным сообщением:

Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «*** - [строка NSCFArray]: нераспознанный селектор отправлен на экземпляр 0x3953a20 '

Это происходит, когда я прокручиваю таблицу, которая получает данные из массива словарей.

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

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

Если переменная, которую вы отправляете -row, на самом деле не напечатана как NSArray, скорее всего, вы не выполнили правила управления памятью для этой переменной. Эти же симптомы очень часто вызваны этим. То, что отвечает на -row, могло существовать в один момент, было освобождено, потому что вы его не сохранили, и затем NSArray был позднее размещен в этом месте.

Запустите «Построить и проанализировать» и пересмотреть рекомендации по управлению памятью, пока не узнаете их во сне.

0 голосов
/ 17 июня 2010

Похоже, вы отправляете сообщение row на NSArray. В классе NSArray не определен метод строки. Если вы используете таблицу, я думаю, вы хотите отправить «строку» параметру indexPath, чтобы получить позицию, а затем получить данные в этой позиции в вашем массиве данных:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // first row will be like 0
    NSUInteger row = [indexPath row];
    // get the same row position in your data array
    id data = [YOUR_DATA_ARRAY objectAtIndex:row];
}

Это даст вам числовую позицию строки. Одно предостережение: «строка» не является частью базового класса NSIndexPath. Это добавлено как категория в UIKit .

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