как решить ошибку NSPredicate 'Невозможно использовать в / содержит оператор с коллекцией 8 (а не сбор)

Я попытался предикатировать мою копию на основе настроения в начальных запросах, для всех настроений установлено значение 8. Я буду звонить от 0 до 7 раз в секунду для обновления таблицы.

но я получил

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't use in/contains operator with collection 8 (not a collection)' 

Должен ли я использовать CONTAINS или другого оператора для предикации?

 NSString* filter = @"%K CONTAINS[cd] %@"; NSPredicate *getMoodPred = [NSPredicate predicateWithFormat:filter, @"mood", mood]; NSLog(@"getmood %@",getMoodPred); //getmood mood CONTAINS[cd] "7" NSArray *getMoodArray = [[VPPCoreData sharedInstance]allObjectsForEntity:@"Song" orderBy:Nil filteredBy:getMoodPred]; 

Вероятно, это означает, что атрибут mood хранится как Number, а не как String. «СОДЕРЖИТ» работает только со строками. Следующий предикат должен работать:

 NSNumber *mood = @(7); NSString *filter = @"%K == %@"; NSPredicate *getMoodPred = [NSPredicate predicateWithFormat:filter, @"mood", mood]; 

используя NSNumber на rhs и == качестве компаратора.

  • Фильтрация NSPredicate со специальными символами
  • Поиск основных данных для NSDate
  • NSPredicate с использованием ошибки OR
  • Ошибка кэширования CoreData с помощью NSPredicate
  • Использование NSPredicate для фильтрации NSArray объектов на основе свойства NSDictionary
  • NSPredicate для фильтрации отношения основных данных NSS по атрибуту
  • Swift - предикат для фильтрации массива с помощью свойства массива-члена
  • Фильтр NSArray с 2D-NS-словарями с использованием NSPredicate
  • Фильтр NSArray объектов для создания уникального объекта свойства
  • Цель c - поиск по слову
  • NSPredicate с отношением AND в отношениях один-ко-многим
  • Давайте будем гением компьютера.