在同一个db上同时使用基于核心数据和sqlite c的api
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在同一个db上同时使用基于核心数据和sqlite c的api相关的知识,希望对你有一定的参考价值。
可以将AFAIK CoreData配置为在持久性存储中使用sqlite。
因此,核心数据不提供使用SQL进行查询的方法。
所以核心数据在后台有sqlite db。
使用Core-Data和基于Sqlite c的api同时访问同一个数据库是否安全?
是否会导致任何数据损坏是sqlite或任何线程问题。
我将使用任何包装器(如FMDB或基于C的API)的原因是使用sql查询查询复杂数据
答案
它可能是安全的,但它仍然是一个非常糟糕的主意。 Core Data定义了自己的模式,该模式未记录,与您在设计SQL模式时使用的模式不同。因此,您必须创建Core Data模型,然后对您自己的架构进行反向工程以进行直接SQL调用。
当然,在完全不同的调用样式中保持同步变化将是一个绝对痛苦的屁股。
这是一个坏主意,即使它不会破坏您的数据。你会后悔使用这种方法。
另一答案
在存在并发和子查询表达式之前,我已经完成了这个。在使用sql之前,我必须让Core Data将所有内容保存到磁盘。它当时工作但你永远不知道它是否适用于未来的OS X.现在我不会这样做。如果您需要复杂的查询,请仅使用Sqlite或使用核心数据,并对谓词和获取请求具有创造性。
以上是关于在同一个db上同时使用基于核心数据和sqlite c的api的主要内容,如果未能解决你的问题,请参考以下文章
Coredata 性能——为只读数据集提供预填充的核心数据 sqlite db