我想知道我的应用程序如何访问 ios App 中的 SQLite 数据库

Posted

技术标签:

【中文标题】我想知道我的应用程序如何访问 ios App 中的 SQLite 数据库【英文标题】:I am wondering how my app accesses SQLLite database in ios App 【发布时间】:2013-07-07 03:56:37 【问题描述】:

我是 sqllite 和一般数据库的新手,到目前为止,我有一个应用程序,您可以在其中输入数据,然后将其存储在 sqllite db 文件中。我只在 ios 模拟器上运行,所以我不确定实际的应用程序将如何工作。当我的计算机关闭时,该应用程序是否仍然能够获取数据并更新 sql 数据库?我想我的问题是:sqllite 数据库是否也在云端或在线某个地方。

提前致以最诚挚的问候和感谢

【问题讨论】:

文件存储在哪里? 是的,它会在您的计算机关闭时工作..因为它保存在安装了您的应用程序的手机中,而对于您的第二个问题,它不在云端或在线..您必须自定义它放在 icloud 上。 SQLite 始终是一个“本地”数据库,驻留在实现 API 的盒子上。所以数据库文件将在手机上。但是,您需要注意一个常见错误:虽然您可以从“bundle”中读取文件,但不能修改该 bundle,因此如果您预先创建一个 SQLite 文件并将其放入该 bundle 中,该文件将“poof” “在你身上。作为安装过程的一部分,在使用它之前,需要将其从捆绑包复制到读写空间。 (但如果您只是在第一次使用时从头开始创建文件,那么您不需要复制 - 只需确保使用正确的文件路径。) (应该提一下,如果您只需要一个没有特殊功能或能力的简单数据库,您可能应该使用 Core Data 而不是直接使用 SQLite。Core Data 是 Apple 在 SQLite 之上的一层,可以简化访问它。仅当您需要 Core Data 不支持的功能时,才直接使用 SQLite。) 好的,非常感谢,我现在知道它将在应用程序上。我正在制作一个聊天应用程序,iphone 是否能够更新数据库,然后使用新消息更新 tableview,就像现在在模拟器上所做的那样,db 文件位于资源文件夹中 【参考方案1】:

SQLite 是一个基于文件的数据库,存储在您的应用程序中(设备本地)。要集中数据库,您应该有服务器端支持。建议使用更好的 DBMS,如 mysql,以获得更多功能支持。

【讨论】:

【参考方案2】:

我建议你使用核心数据来处理 iCloud。这里有一个很好的文档。

http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html

只有当您的应用程序使用 Core Data 来管理该数据库时,才能将 iCloud 与 SQLite 数据库一起使用。不支持使用 SQLite 界面访问 iCloud 中的实时数据库文件,这可能会损坏您的数据库。但是,只要在设置 Core Data 结构时执行一些额外的步骤,就可以基于 SQLite 创建 Core Data 存储。您还可以继续使用其他类型的 Core Data 存储,即不基于 SQLite 的存储,无需任何特殊修改。

礼貌:-https://***.com/a/7799255/1865424

如果您对此有任何其他问题..很乐意为您提供帮助。

【讨论】:

非常感谢,但我尽量避免将其放在云中,您认为这对我的应用程序有必要吗?我正在制作一个聊天应用程序,数据库由消息组成 @OmarClinton 是的,无论是 iCloud 还是其他任何东西,您都必须将其放在云上。这样,您的用户就可以从他们使用它的任何地方进行更新,这是最佳实践。【参考方案3】:

默认情况下,如果您在打开数据库时只提供文件名,则它会存储在您的设备上。每台设备在您的设备上都有自己的“沙盒”,用于存储其文件。

如果您想将数据保存到云端,则需要额外的编程。

Here is a good description in Apple's documentation.

Here is a description on how to use the cloud.

【讨论】:

非常感谢您的快速回答。是否有必要将其放在云上。我正在制作一个聊天应用程序,我想知道一旦在 iphone 上发送消息而不使用云,数据库是否会自动更新。 使用iCloud对用户的数据来说更加安全,即使用户的设备发生任何事情,数据仍然会保存在云端。无论哪种方式,如果您保存到数据库,然后提交/同步数据库,您的数据库将得到更新。

以上是关于我想知道我的应用程序如何访问 ios App 中的 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章

不知道如何在 iOS 上从我的应用委托访问视图对象

IOS 8 App Group 访问键盘扩展中的容器应用程序文件

IOS中App开发的外部影响

iOS 中的访问设置应用程序

Facebook App Review iOS - 无法选择“从Apple App Store下载”

如何在 iOS 8 的 iOS App 中的 UIWebview 中执行 java 脚本?