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

Ios 在同一数据库上同时使用核心数据和基于sqlite c的api,ios,multithreading,sqlite,core-data,fmdb,Ios,Multithreading,Sqlite,Core Data,Fmdb,可以将AFAIK CoreData配置为在持久存储中使用sqlite 所以核心数据并没有提供使用SQL进行查询的方法 所以核心数据在后台有sqlite db 同时使用核心数据和基于Sqlite c的api访问同一数据库安全吗 sqllite或线程问题是否会导致任何数据损坏 我之所以要使用诸如FMDB或基于C的API之类的包装器,是为了使用sql查询来查询复杂数据。这可能是安全的,但这仍然是一个非常糟糕的主意。核心数据定义自己的模式,该模式没有文档记录,与设计SQL模式时使用的模式不同。因此,您必

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

所以核心数据并没有提供使用SQL进行查询的方法

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

同时使用核心数据和基于Sqlite c的api访问同一数据库安全吗

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


我之所以要使用诸如FMDB或基于C的API之类的包装器,是为了使用sql查询来查询复杂数据。这可能是安全的,但这仍然是一个非常糟糕的主意。核心数据定义自己的模式,该模式没有文档记录,与设计SQL模式时使用的模式不同。因此,您必须创建核心数据模型,然后对自己的模式进行反向工程以进行直接SQL调用

当然,在完全不同的通话风格中保持变化的同步也是一件非常痛苦的事情


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

它可能是安全的,但它仍然是一个非常糟糕的主意。核心数据定义自己的模式,该模式没有文档记录,与设计SQL模式时使用的模式不同。因此,您必须创建核心数据模型,然后对自己的模式进行反向工程以进行直接SQL调用

当然,在完全不同的通话风格中保持变化的同步也是一件非常痛苦的事情


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

在并发和子查询表达式存在之前,我曾经这样做过。在使用sql之前,我必须让核心数据将所有内容保存到磁盘。那时候它很管用,但你永远不知道它在未来的OSX中是否管用。现在我不会这么做了。如果您需要复杂的查询,请仅使用Sqlite或使用核心数据,并对谓词和获取请求进行创造性处理。

在并发和子查询表达式存在之前,我曾经这样做过。在使用sql之前,我必须让核心数据将所有内容保存到磁盘。那时候它很管用,但你永远不知道它在未来的OSX中是否管用。现在我不会这么做了。如果您需要复杂的查询,请仅使用Sqlite或使用核心数据,并创造性地使用谓词和获取请求。

核心数据定义自己的模式。。。我不明白这部分。。在后台,核心数据仅使用sqlite。。因此,对象将被转换为表,其属性将被转换为列。。因此,编写自己的sql是多么的困难……您能解释一下,对于meCore,数据实体被转换为SQLite表,但核心数据所做的不仅仅是它自己的内部使用。实际方案将类似于数据模型,但是还有一些额外的细节没有被记录,但是必须有正确的核心数据值才能使用该文件。这些额外的细节将来可能会改变。但是无论如何,我们可以通过实体名和属性名与sqlite进行交互。表名和字段名将与核心数据中使用的名称不匹配model.core-data定义自己的模式。。。我不明白这部分。。在后台,核心数据仅使用sqlite。。因此,对象将被转换为表,其属性将被转换为列。。因此,编写自己的sql是多么的困难……您能解释一下,对于meCore,数据实体被转换为SQLite表,但核心数据所做的不仅仅是它自己的内部使用。实际方案将类似于数据模型,但是还有一些额外的细节没有被记录,但是必须有正确的核心数据值才能使用该文件。这些额外的细节将来可能会改变。但是无论如何,我们可以通过实体名和属性名与sqlite进行交互。表名和字段名将与核心数据模型中使用的名称不匹配。