使用 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
但是,该条目中没有任何内容具体说明问题的解决方案。
您可以通过
检查数据是否存在
- 正在将应用程序文档目录的 URL 打印到控制台。
- 进入终端中的这个目录
- 运行
sqlite3 <databaseName>
- 尝试
select * from z<entityName> where name = '<nameData>'
您将能够探索数据并检查它是否包含您期望的内容。不要忘记检查代码中 name
和 series
变量的内容。
哦哇...非常感谢大家的所有回答。最后发现,当我填充 id 以将新行插入 table 时,我正在查看不同的 table 来计算新的主键 id。
所以我覆盖了现有记录,这就是我的查询一直失败的原因。
孩子们,如果你copy/paste你的代码没有经过严格的检查,你会过得很糟糕。
我将数据存储在 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
但是,该条目中没有任何内容具体说明问题的解决方案。
您可以通过
检查数据是否存在- 正在将应用程序文档目录的 URL 打印到控制台。
- 进入终端中的这个目录
- 运行
sqlite3 <databaseName>
- 尝试
select * from z<entityName> where name = '<nameData>'
您将能够探索数据并检查它是否包含您期望的内容。不要忘记检查代码中 name
和 series
变量的内容。
哦哇...非常感谢大家的所有回答。最后发现,当我填充 id 以将新行插入 table 时,我正在查看不同的 table 来计算新的主键 id。
所以我覆盖了现有记录,这就是我的查询一直失败的原因。
孩子们,如果你copy/paste你的代码没有经过严格的检查,你会过得很糟糕。