Предикат выборки Core Data с предложением «ANY ... IN» не работает - PullRequest
1 голос
/ 27 марта 2019

У меня есть такая структура:

Library 
----------
id: String
name: String
bookIds: NSArray?

Я хочу получить все библиотеки, в которых есть несколько книг, которые я ищу.Довольно нормальные вещи, я знаю.Это то, что я делаю (и ожидаю работать):

    let bookIds: [String] = ...
    let fetchRequest: NSFetchRequest<Library> = Library.fetchRequest()
    fetchRequest.predicate = NSPredicate(format: "ANY bookIds IN %@", bookIds)

Я также пробовал другие способы, такие как этот:

    let predicates = bookIds.map {
            NSPredicate(format: "ANY %K LIKE %@", #keyPath(Library.bookIds), $0)
        }
    let predicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)

Вот как я использую этот fetchRequest:

    librariesFetchController = NSFetchedResultsController(
            fetchRequest: fetchRequest,
            managedObjectContext: context,
            sectionNameKeyPath: nil,
            cacheName: nil
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...