2011-08-25 56 views
0

我在我的DML语句的应用程序中使用CoreData,并且一切都很好。 但是,我不希望使用NSFetchedResultsController简单的查询,如获得行数等从fmdb访问CoreData表

我已经决定使用fmdb,但不知道实际的表名写入SQL。实体和表名不匹配。 我甚至看了.sqllite文件中有文字编辑,但没有希望:) FMResultSet * RS = [DB的getSchema]不返回任何行

也许有更好的解决我的问题?

在此先感谢

回答

0

核心数据前缀所有的SQL名称与Z_。使用SQL命令行工具检出您的持久存储文件以查看它使用的名称。

但是,这是一个非常复杂和脆弱的解决方案。核心数据架构没有文档记录,并且在没有警告的情况下进行更改,因为核心数据不支持直接SQL访问。您可能会直接错误地访问商店文件,并且您的解决方案可能会在下次更新API时随机中断。

核心数据API提供了您正在寻找的功能。我只使用一个使用NSExpressionDescription来执行功能的获取请求fetches on a specific value。这使您可以获取计数,最小值,最大值等信息。您可以创建和使用独立于NSFetchedResultsController的提取。

Core Data API功能非常丰富。如果您发现自己在API之外寻找数据解决方案,那么您很可能错过了API中的某些东西。

+0

我会尽力而为,非常感谢 – Elnur