虽然%@没有fetchRequest谓词的结果

时间:2016-10-22 17:57:10

标签: ios swift core-data nspredicate nsfetchrequest

我在将核心数据获取请求应用于过滤器时遇到了麻烦。我已经检查过处理谓词功能的正确实现的其他帖子,但不知何故它对我不起作用。

我研究了网络,并且我想用%@ 来表示字符串。这就是我所做的,因为title(来自实体ITEM的属性)和nameIdentifier都是数据类型字符串。

也许我错过了swift 3改变了一些东西?

这是我的代码:

swift 3

func textViewDidEndEditing(_ textView: UITextView) {

 nameIdentifier = textField.text

    // save to Entity
            let fetchRequest: NSFetchRequest<ITEMS> = ITEMS.fetchRequest()

    // check if string has correct value
            print ("NameIdentifier: \(nameIdentifier)") 

            fetchRequest.predicate = NSPredicate(format: "title == %@", nameIdentifier)
            do {
                if let results = try context.fetch(ITEMS.fetchRequest()) as? [ITEMS] {
                    for object in results {

    // check: results of the predicate fetch requests
                            print ("Results: \(object)")
                        }
                    }
                }catch {print ("no results")}
}

但是,我的控制台中的结果根本没有被过滤掉。它获取已存储的所有数据:

控制台输出

NameIdentifier: test1

no results <RISK_ITEMS: 0x6000002a63c0> (entity: RISK_ITEMS; id: 0xd000000001c40000 <x-coredata://7687B389-1346-4C27-9B93-99B324FC28D2/RISK_ITEMS/p113> ; data: {
    "title" = test1;
})
no results <RISK_ITEMS: 0x6000002a3120> (entity: RISK_ITEMS; id: 0xd000000001c80000 <x-coredata://7687B389-1346-4C27-9B93-99B324FC28D2/RISK_ITEMS/p114> ; data: {
    "title" = test2;
})

0 个答案:

没有答案