Objective c 我可以让核心数据使用已经创建的sql数据库吗

Objective c 我可以让核心数据使用已经创建的sql数据库吗,objective-c,Objective C,我有一个清真寺数据库有1000个项目 我想使用核心数据方法访问我的数据库 我已经尝试了SQLite方法来创建数据库 其中,我有一个文本垫文件,所有数据由选项卡分隔 然后将数据从txt文件导入sql文件 现在这个很好用 我想知道如何将数据从SQL文件导入到新创建的核心数据项目中 我应该将SQL文件添加到资源吗?? 复制还是不复制 我看过CoreDataBooks的例子,但我认为我遗漏了一些东西 我想知道向核心数据项目的资源中添加SQL文件的确切方法 你不能 您应该考虑这样一个事实,即核心数据使用S

我有一个清真寺数据库有1000个项目

我想使用核心数据方法访问我的数据库

我已经尝试了SQLite方法来创建数据库 其中,我有一个文本垫文件,所有数据由选项卡分隔 然后将数据从txt文件导入sql文件

现在这个很好用

我想知道如何将数据从SQL文件导入到新创建的核心数据项目中

我应该将SQL文件添加到资源吗?? 复制还是不复制

我看过CoreDataBooks的例子,但我认为我遗漏了一些东西

我想知道向核心数据项目的资源中添加SQL文件的确切方法

你不能

您应该考虑这样一个事实,即核心数据使用SQLite作为将文件保存为实现细节的格式,除非您真的、真的、真的需要这样做,否则不要直接使用。例如,如果还直接写入SQLite文件,则不能期望核心数据正常工作

相反,请阅读核心数据文档,并将数据直接从选项卡分隔的文本文件导入核心数据上下文,然后让核心数据将其保存到文件中。是的,它确实在幕后使用SQLite,但最好忘记这一事实。

你不能

您应该考虑这样一个事实,即核心数据使用SQLite作为将文件保存为实现细节的格式,除非您真的、真的、真的需要这样做,否则不要直接使用。例如,如果还直接写入SQLite文件,则不能期望核心数据正常工作


相反,请阅读核心数据文档,并将数据直接从选项卡分隔的文本文件导入核心数据上下文,然后让核心数据将其保存到文件中。是的,它确实在幕后使用SQLite,但最好忘记这一事实。

Yuji和Dave DeLong在这两个方面都是正确的,但是我觉得我应该补充一点,仅仅因为你不能实际地向CoreData提供预填充的SQLite文件并不意味着你不能从SQLite文件引导CoreData存储(或者一个文本文件或其他任何东西)这只是意味着你必须自己做这项工作

例如,您可以包括预填充的SQLite文件(使用它自己的非CoreData模式等)作为项目中的资源。然后,当应用程序启动时,如果它看到CoreData存储为空,则可以直接使用SQLite API打开/查询引导数据库,并将结果转换为在CoreData中生成所需对象图的操作。下次应用程序启动时,CoreData对象图将弹出这样你就不用再做了


这里的要点是,虽然它不是“免费的”,但也不是“不可能的”许多应用程序都包含内置的包含数据的CoreData存储库。这些数据必须从某个地方引导,对吗?

Yuji和Dave DeLong在这两个帐户上都是正确的,但是我觉得我应该补充一点,仅仅因为你不能实际地向CoreData提供预填充的SQLite文件并不意味着你不能引导CoreData从SQLite文件(或文本文件或任何其他文件)中存储。这只意味着您必须自己完成这项工作

例如,您可以包括预填充的SQLite文件(使用它自己的非CoreData模式等)作为项目中的资源。然后,当应用程序启动时,如果它看到CoreData存储为空,则可以直接使用SQLite API打开/查询引导数据库,并将结果转换为在CoreData中生成所需对象图的操作。下次应用程序启动时,CoreData对象图将弹出这样你就不用再做了


这里需要说明的是,虽然它不是“免费的”,但也不是“不可能的”。很多应用程序都包含内置的包含数据的CoreData存储库。这些数据必须从某个地方引导,对吗?

谢谢你,Yuji,好吧……这是将选项卡分隔的文本文件导入核心数据的方式吗()或者有更好的方法吗?对不起,我对Obj-C真的很陌生..+1,除了你从来没有“真正需要”直接使用sqlite。它的模式是框架明确选择的自定义格式,甚至乱动它包含的数据都是一个坏主意。你说得很对,Dave。我的意思是,你永远不应该在生产代码中使用它……使用sqlite直接打开它,看看苹果做了什么,总是很有趣的。@Sara,这是一个好主意学习核心数据不是一个简单、快速的方法,尤其是如果你是Objective-C新手的话。这是因为它使用了很多Objective-C/Cocoa约定,而且它是一个大框架。你应该抵制从第一天开始编写代码的冲动。因此,停止在谷歌上搜索一个简短的教程。相反,你应该从阅读标准文档开始(例如,Apple的Cocoa基础知识和iPhone核心数据教程。请访问developer.Apple.com;您可以在那里找到它们。)花一周时间学习基础知识可以节省您几个月的时间。谢谢Yuji,好吧。这是将选项卡分隔的文本文件导入核心数据的方式吗()或者有更好的方法吗?对不起,我对Obj-C真的很陌生..+1,除了你从来没有“真正需要”直接使用sqlite。它的模式是框架明确选择的自定义格式,甚至乱动它包含的数据都是一个坏主意。你说得很对,Dave。我的意思是,你永远不应该在生产代码中使用它……使用sqlite直接打开它,看看苹果做了什么,总是很有趣的。@Sara,这是一个好主意学习核心数据不是一个简单、快速的方法,尤其是如果你是Objective-C新手的话。这是因为它使用了很多Objective-C/Cocoa约定,也因为它是一个大框架。你应该抵制从第一天开始编写代码的冲动。因此,停止在谷歌上搜索一个简短的教程。相反,你应该从阅读标准文档开始