使用 NSPredicate 的 FetchRequest 找不到结果?

FetchRequest with NSPredicate not finding results?

我将数据存储在 table 中,其中包含列 "name" 和 "series"。我正在使用这个 NSPredicate 来查询:

var request : NSFetchRequest = NSFetchRequest(entityName: "Entry")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "name = %@ AND series = %@", name, series)
return request

'name'和'series'变量作为String参数传入,也是table.

上的数据类型

由于某种原因,此查询 returns 没有数据。如果我在没有指定谓词的情况下对此 table 执行提取请求,我可以看到数据确实存在。我不确定我做错了什么。

尽管如此,我已经尝试将条件用括号括起来,但这似乎也没有什么不同。提前致谢!

更新:我尝试了很多不同的方法,但到目前为止没有任何效果。我真的很困惑。

值得一提的是,我似乎遇到了与此人相同的问题:NSPredicate Returns No Results with Fetch Request, Works with Array Filtering

但是,该条目中没有任何内容具体说明问题的解决方案。

您可以通过

检查数据是否存在
  1. 正在将应用程序文档目录的 URL 打印到控制台。
  2. 进入终端中的这个目录
  3. 运行 sqlite3 <databaseName>
  4. 尝试select * from z<entityName> where name = '<nameData>'

您将能够探索数据并检查它是否包含您期望的内容。不要忘记检查代码中 nameseries 变量的内容。

哦哇...非常感谢大家的所有回答。最后发现,当我填充 id 以将新行插入 table 时,我正在查看不同的 table 来计算新的主键 id。

所以我覆盖了现有记录,这就是我的查询一直失败的原因。

孩子们,如果你copy/paste你的代码没有经过严格的检查,你会过得很糟糕。