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