Я пытаюсь использовать NSArrays и NSPredicates для фильтрации определенных ячеек UITableView.У меня есть класс TableViewController с именем FilterTable, который состоит из FilterCell, который является подклассом UITableViewCell.Данные в ячейке фильтра поступают из UserProfile, у которого есть свойство "major" (среди прочих).Когда пользователь нажимает кнопку, я хочу, чтобы в таблице отображались только те ячейки, которые соответствуют профилю пользователя с «Информатикой» в качестве основного.Я сделал NSPredicate для фильтрации массива UserProfile, который я использую для заполнения своей таблицы, но когда я делаю это, я получаю ошибку
*** Завершение приложения из-за необработанного исключения «NSUnknownKeyException», причина: '[valueForUndefinedKey:]: этот класс не совместим с кодировкой значения ключа для ключевого мажора. '
Однако, как я уже говорил, мажор является свойством UserProfile.
// FROM FilterTable:
...
let predicate = NSPredicate(format: "major = 'Computer Science'")
filteredProfiles = (userProfilesArray as NSArray).filtered(using: predicate) as NSArray
...
// FROM UserProfile
class UserProfileViewController: UIViewController {
var major: String!
...
Одно из возможных решений (из предыдущего вопроса переполнения стека) вместо этого делает:
filteredProfiles = profileStore.profiles.filter{$0.major == "Computer Science"} as NSArray
Однако я хочу использовать NSPredicates, потому что я в конечном итоге хочу составить предикаты в составные предикаты, если пользователь хочет фильтровать по нескольким основным или другими потому, что я в конечном итоге хочу использовать NSFetchRequest.
Как я могу реализовать ту же идею, что и $ 0.major, которая определяет доступ к UserProfile с использованием NSPredicates.Спасибо:)