我想知道我的应用程序如何访问 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 8 App Group 访问键盘扩展中的容器应用程序文件