我想为我的包装sqlite提供iCloud支持。不使用coredata。如何启用iCloud支持sqlite?
我想知道如何启用iCloud。数据库内容一直都在更改(用于开票)。此外,如果有可能有某种版本将是伟大的。
存在我可以用来做这个的任何样品吗?
我想为我的包装sqlite提供iCloud支持。不使用coredata。如何启用iCloud支持sqlite?
我想知道如何启用iCloud。数据库内容一直都在更改(用于开票)。此外,如果有可能有某种版本将是伟大的。
存在我可以用来做这个的任何样品吗?
简短的回答是否定的,您需要使用核心数据。苹果已经声明,sqlite不受支持。
编辑:退房节上iCloud that's now in the iOS Application Programming Guide下结合数据库
使用的iCloud使用SQLite数据库使用的iCloud才可能应用程序使用 核心数据来管理数据库。访问 中的实时数据库文件不支持使用SQLite接口的iCloud,并且可能会损坏数据库。但是,只要在设置 核心数据结构时执行一些额外步骤,就可以在SQLite上创建基于 的Core Data存储。您也可以继续使用其他类型的Core 数据存储 - 即不基于SQLite的存储 - 没有任何特殊的 修改。
您不能只将SQLite数据库放入iCloud容器中,因为它可能会损坏。 (在修改SQLite数据库时,临时文件会被创建并重命名,因此如果同步过程开始复制这些文件,则会收到损坏的数据库。)
如果您不想移动到Core Data,您可以执行Core Data的操作:将数据库存储在文档文件夹中,并将事务日志存储在iCould容器中。每次更改数据库时,都会将这些更改添加到日志文件中,以便您可以回放并在其他设备上进行等效更改。
这变得非常复杂:除了获得正确的日志/回复逻辑之外,您还需要合并冗余更改并定期将日志合并到数据库的完整副本中。
如果您可以利用您的应用程序的知识(核心数据必须解决一般情况下的问题),您可能会更容易开发解决方案。例如,您可以将发票作为单独的文件保存在云容器(文本,属性列表,XML,JSON等)中,在数据库更改时将其写出,只有在系统告诉您创建或更改时才导入发票。
总之,您可以选择迁移到核心数据或自己编写同步解决方案。哪一个最好取决于你的应用程序的细节。
哪里有苹果说的? – mamcx
我刚刚编辑我的帖子,以包括来源 – kris