我想为sqlite的包装提供iCloud支持.不使用coredata.
我想知道如何为它启用iCloud.数据库内容始终更改(用于开票).另外,如果可以进行某种版本控制会很棒.
存在我可以使用的任何样本吗?
简短的回答是否定的,您需要使用您怀疑的核心数据.Apple声称sqlite不受支持.
编辑:查看iCloud中现在位于iOS应用程序编程指南中的部分,使用iCloud与数据库连接
仅当您的应用使用Core Data管理该数据库时,才可以将iCloud与SQLite数据库配合使用.不支持使用SQLite接口访问iCloud中的实时数据库文件,这可能会损坏您的数据库.但是,只要在设置Core Data结构时执行一些额外步骤,就可以基于SQLite创建Core Data存储.您还可以继续使用其他类型的Core Data存储 - 即不基于SQLite的存储 - 无需任何特殊修改.
您不能只将SQLite数据库放在iCloud容器中,因为它可能会损坏.(当您修改SQLite数据库时,会创建并重命名临时文件,因此如果同步进程开始复制这些文件,您将获得一个损坏的数据库.)
如果您不想迁移到Core Data,您可以执行Core Data的操作:将数据库存储在文档文件夹中,并将事务日志存储在iCould容器中.每次更改数据库时,都会将这些更改添加到日志文件中,以便您可以回放它们并在其他设备上进行相应的更改.
这变得非常复杂:除了正确地获取日志/回复逻辑之外,您还需要合并冗余更改并定期将日志折叠为数据库的完整副本.
如果您可以利用应用程序的知识(核心数据必须在一般情况下解决问题),您可能会更容易开发解决方案.例如,您可以将发票保存为云容器中的单独文件(文本,属性列表,XML,JSON等),在数据库更改时将其写出,只有在系统告知您创建或更改时才导入.
总之,您可以选择迁移到Core Data或自己编写同步解决方案.哪一个最好取决于您的申请的详细信息.
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |