NSInvalidArgumentException ', reason:' – [__ NSArrayI length: непризнанный селектор, отправленный в экземпляр

Поскольку я искал ответы от Google, и здесь большая часть ответа говорит, что вы пытаетесь использовать длину в NSArray, которая не поддерживается.

Проблема здесь в том, что я даже не использую NSArray или длину в моем коде.

Я получил

NSMutableArray *filteredContent; 

где filteredContent будет содержать словари из plist.

Все работает отлично до записи cell.textLabel.text в ячейке для tableView .
Проверено с помощью NSLog и контент действительно представляет собой массив.

Вот как я пытаюсь написать текст ячейки:

 cell.textLabel.text=[[self.filteredContent objectAtIndex:indexPath.row] valueForKey:@"recipeName"]; 

Но это дает мне ошибку, поэтому я изменил ее на:

 NSString *myValue = [self.filteredContent valueForKey:@"recipeName"]; cell.textLabel.text=myValue; 

Но результат тот же. Я понятия не имею, что я получаю эту ошибку.

Дальнейшие подробности:

 [results addObject:@[recipe]]; 

Здесь я создаю свой основной массив и PageView его в PageView с filteredContent = results PageView filteredContent = results


РЕДАКТИРОВАТЬ:

recipe = arrayOfPlist[i]; где arrayOfPlist

 NSArray *arrayOfPlist = [[NSArray alloc] initWithContentsOfFile:path]; //Output to NSLog(@"FIltered Content : %@", self.filteredContent); FIltered Content : ( ( { category = main; difficultyLevel = "3/5"; numberOfPerson = 5; recipeDetail = "Bulguru koy su koy beklet pisir ye "; recipeImage = "nohutlu-pilav.jpg"; recipeIngredients = "pirinc,tereyag tuz,bulgur"; recipeName = "Bulgurlu Pilav"; time = "25 dk"; } ), ( { category = main; difficultyLevel = "3/5"; numberOfPerson = 5; recipeDetail = "Bulguru koy su koy beklet pisir ye "; recipeImage = "nohutlu-pilav.jpg"; recipeIngredients = "pirinc,tereyag tuz,bulgur"; recipeName = "Bulgurlu Pilav"; time = "25 dk"; } ) ) 2014-04-27 02:47:41.704 deneme2[19820:60b] VALUE IN FILTERED TABLE is ( "Bulgurlu Pilav" // this is what i want to write to the cell label and i get it with myValue-look a bit above ) 

2 Solutions collect form web for “NSInvalidArgumentException ', reason:' – [__ NSArrayI length: непризнанный селектор, отправленный в экземпляр”

Основываясь на результатах ваших данных, у вас есть дополнительный массив. Итак, вы хотите:

 cell.textLabel.text = self.filteredContent[indexPath.row][0][@"recipeName"]; 

Каждый элемент вашего filterContentArray – это другой массив. Каждый из этих внутренних массивов имеет словарь с нужными данными.

Сделайте то, что предложил @rmaddy, или:

Изменить:

 [results addObject:@[recipe]]; 

чтобы:

 [results addObject:recipe] 

Объяснение:

NSInvalidArgumentException ', reason:' – [__ NSArrayI length: непризнанный селектор, отправленный в экземпляр

Эта ошибка говорит нам:

  1. Объект NSArray ( где-то, как-то )
  2. Метод, вызванный этим объектом NSArray был length
    • Но NSArray не имеет метода length
    • Кажется, что был отправлен метод вызова метода length , скорее всего, на объект NSString который фактически NSArray объект NSArray а не объект NSString .

Во-первых, обратите внимание, что при указании:

  1. @[]
    • вы подразумеваете, что объект, который должен быть создан, является объектом NSArray .
    • ref: Objective-C литералы для NSDictionary, NSArray и NSNumber

Поэтому, когда вы делаете: [results addObject:@[recipe]]; :

  • @[recipe]
    эквивалентно
  • [NSArray alloc] initWithObjects:recipe, nil]

Итак … вы в основном принимаете recipe , помещая его в массив, а затем добавляете этот объект массива в results ( это другой массив ).

Позже, когда вы придете в PageView

 [[self.filteredContent objectAtIndex:indexPath.row] valueForKey:@"recipeName"]; 

вернет вам массив значений для ключевого имени recipeName .

Таким образом, ваша строка содержит массив, а не строковый объект.
Теперь … вы cell.textLabel.text length на нем или нет, где-то на жизненном цикле length вызывается на cell.textLabel.text и поднимает эту ошибку.

  • UITableView со статическими ячейками без cellForRowAtIndexPath. Как установить чистый фон?
  • Могу ли я вызвать reloadRowsAtIndexPaths ... внутри moveRowAtIndexPath ...?
  • Сетка изображений в iOS
  • Результаты поиска TableView не выбраны
  • Как масштабировать изображение в изображении UITableViewRowAction, чтобы оно соответствовало динамической высоте ячейки
  • UITableView расширяет цвет фона под ячейками
  • Кнопка «Назад» не отображается на нажатом UIViewController
  • Swift: UIButton в пользовательской UITableViewCell «Непризнанный селектор, отправленный в экземпляр»
  • Заполнение ячеек таблицы с данными из Alamofire
  • Контроллер SearchDisplay не показывает результаты моего поиска
  • Добавление UIButton в ячейки UItableview
  • Interesting Posts

    Какао: Почему мой стол выглядит пустым?

    Попытка подключения к сети Multipeer пытается вставить нулевой объект из объектов

    Системный «tock» звук отсутствует в iOS 7

    Получение данных пикселя RGB из CGImage

    Как вычислить вектор, который находится вне камеры?

    Поддержка старых версий iOS от Xcode 5

    Crash / SIGABRT, когда я пытаюсь представить UIPopoverController

    iPhone: событие jQuery scroll () запускается только при выпуске

    Проблема при масштабировании uiscrollview, которая используется для изменения размера и обрезки изображения в IOS

    Метод Init для основного объекта данных недоступен

    Скрыть панель поиска UITableView

    Как изменить цвет текста кнопки UIAlertController в iOS9?

    A (физическая) строка с весом в iOS

    ios http POST (данные и изображение): изображение не отправляется

    Ячейки UICollectionView располагаются горизонтально, а не вертикально, чтобы обмануть трамплин?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.