我在我的 DML 语句应用程序中使用 CoreData,一切都很好。但是我不想将 NSFetchedResultsController 用于简单的查询,比如获取行数等。
我决定使用 fmdb,但不知道实际的表名来编写 sql。实体和表名不匹配。我什至用 TextEdit 查看了 .sqllite 文件,但没有希望 :) FMResultSet *rs = [db getSchema] 不返回任何行
也许对我的问题有更好的解决方案?
提前致谢
Core Data 的所有 SQL 名称都以Z_
. 使用 SQL 命令行工具检查您的持久存储文件以查看它使用的名称。
然而,这是一个非常复杂和脆弱的解决方案。由于 Core Data 不支持直接 SQL 访问,Core Data 模式未记录在案,并且在没有警告的情况下更改。您可能会直接访问存储文件时出错,并且您的解决方案可能会在下次更新 API 时随机中断。
Core Data API 提供了您正在寻找的功能。IJust 使用获取请求,该请求使用 NSExpressionDescription获取特定值来执行功能。这使您可以获取计数、最小值、最大值等信息。您可以独立于 NSFetchedResultsController 创建和使用此类提取。
Core Data API 功能非常丰富。如果您发现自己在 API 之外寻找数据解决方案,那么您很可能错过了 API 中的某些内容。