在同一个db上同时使用基于核心数据和sqlite c的api

问题描述 投票:0回答:2

可以将AFAIK CoreData配置为在持久性存储中使用sqlite。

因此,核心数据不提供使用SQL进行查询的方法。

所以核心数据在后台有sqlite db。

使用Core-Data和基于Sqlite c的api同时访问同一个数据库是否安全?

是否会导致任何数据损坏是sqlite或任何线程问题。

我将使用任何包装器(如FMDB或基于C的API)的原因是使用sql查询查询复杂数据

ios multithreading sqlite core-data fmdb
2个回答
4
投票

它可能是安全的,但它仍然是一个非常糟糕的主意。 Core Data定义了自己的模式,该模式未记录,与您在设计SQL模式时使用的模式不同。因此,您必须创建Core Data模型,然后对您自己的架构进行反向工程以进行直接SQL调用。

当然,在完全不同的调用样式中保持同步变化将是一个绝对痛苦的屁股。

这是一个坏主意,即使它不会破坏您的数据。你会后悔使用这种方法。


1
投票

在存在并发和子查询表达式之前,我已经完成了这个。在使用sql之前,我必须让Core Data将所有内容保存到磁盘。它当时工作但你永远不知道它是否适用于未来的OS X.现在我不会这样做。如果您需要复杂的查询,请仅使用Sqlite或使用核心数据,并对谓词和获取请求具有创造性。

© www.soinside.com 2019 - 2024. All rights reserved.