我将数据存储在包含“名称”和“系列”列的表中。我正在使用这个 NSPredicate 来查询:
var request : NSFetchRequest = NSFetchRequest(entityName: "Entry")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "name = %@ AND series = %@", name, series)
return request
“name”和“series”变量作为字符串参数传入,这也是表中的数据类型。
由于某种原因,此查询没有返回任何数据。如果我在没有指定谓词的情况下对该表执行提取请求,我可以看到数据确实在那里。我不确定我做错了什么。
对于它的值(value),我尝试将条件括在括号中,但这似乎也没有什么区别。提前致谢!
更新:我尝试了很多不同的方法,但到目前为止没有任何效果。我真的很困惑。
无论如何,我似乎遇到了与此人相同的问题:NSPredicate Returns No Results with Fetch Request, Works with Array Filtering
但是,该条目中没有任何内容具体说明问题的解决方案是什么。
最佳答案
您可以通过以下方式检查数据是否存在
- 将应用程序文档目录的 URL 打印到控制台。
- 转到终端中的此目录
- 正在运行
sqlite3 <databaseName>
- 尝试
select * from z<entityName> where name = '<nameData>'
您将能够探索数据并检查它是否包含您期望的内容。不要忘记检查您的 name
的内容和series
代码中的变量。
关于ios - 使用 NSPredicate 的 FetchRequest 找不到结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164721/