NSPredicate找不到指定的String

时间:2018-04-05 15:05:58

标签: ios swift uitableview core-data nspredicate

所以我在Core Data中设置了搜索。它从文本字段中获取要搜索的文本,然后尝试使用获取请求中的谓词来搜索它。然后fetchedResultsController应该将它插入tableView。

private func search() {
        guard let searchPhrase = searchField.text else { return }

        fetchRequest.predicate = NSPredicate(format: "title contains[cd] %@", searchPhrase)

        do {
            try fetchedResultsController.performFetch()
            var stuff = try fetchedResultsController.performFetch()
            print(stuff)
            print("fetch Successful")
        } catch {
         fatalError("Error: \(error.localizedDescription)")
        }

    }

控制台输出显示东西(获取结果)为空:

()
fetch Successful

我有两个标题为“哈利波特1”和“哈利波特2”的实体。 我用“哈利波特”测试了它,控制台输出就像上面那样是空的。

变量以这种方式设置:

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchField: UITextField!
var managedObjectContext: NSManagedObjectContext!
lazy var fetchRequest: NSFetchRequest<Book> = NSFetchRequest<Book>(entityName: "Book")
lazy var fetchedResultsController: NSFetchedResultsController<Book> = {
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "date", ascending: false)]
    return NSFetchedResultsController<Book>(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
}()

managedObjectContext正在由presentsViewController传递。 那么问题出在哪里?

0 个答案:

没有答案