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 и поднимает эту ошибку.

  • Повторное использование ячейки из другой таблицы VC в том же раскадровке
  • Загрузка UITableViewCell из xib (этот класс не является ключевым значением, совместимым с кодом для ключа)
  • Удалить цвет фона в UITableViewAccessory
  • привязка UImageView в ячейке к неправильному номеру строки с помощью dequeueReusableCellWithIdentifier ios
  • Повторное использование старого изображения, показывающего
  • Конфликтный прокрутка по UITableView в UIScrollView
  • iPhone / iPad Table View Reload Only One Row вместо всей таблицы
  • Динамическое изменение размера UITableViewCell Heights в iOS Swift
  • IOS tableview повторное использование старых изображений при загрузке новых изображений
  • Цель - C: изменение содержимого UITableView на свитке
  • Как реализовать UITableView со статическими и динамическими ячейками - IOS
  • Interesting Posts

    EKEventStoreChangedNotification вызывается несколько раз

    Как я могу сопоставить настройку уровня Photoshop с фильтром Core Image?

    cv :: MatchShapes ведет себя по-разному для цели развертывания iOS – 8,0 против 9,0 или 10,0

    MapKit – polylineWithCoordinates соединяет все точки

    Подсчитывая количество строк в UITextView, строки, обернутые размером кадра

    Fiddler – Захват и расшифровка трафика HTTPS с iPad-приложения

    Как использовать GameCenter внутри приложения React Native

    Как изменить цвет верхней границы UITabBar, создав программный код UIImage?

    Что означает id <…> в Objective-C?

    Профиль профайла становится недействительным каждый день

    Нужно ли вызывать NSManagedObjectContext save: для хранения в памяти?

    MKStoreKit -isSubscriptionActive всегда возвращает False

    Почему скрытие моей строки статуса полностью нарушает мою простую анимацию?

    Есть ли более быстрый способ делать @property, @synthesize и выпускать переменную класса?

    RXSwift Zip оператор N элементов через перечислимый

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