我一直在研究用于核心数据同步的iCloud的替代方案,一个有希望的选项是TICoreDataSync(the code can be found here)。是否有任何修改此功能的例子可以在自己的网络服务器上运行,而不是将同步文件上传到Dropbox?设置TICoreDataSync的最佳方法是什么?
答案 0 :(得分:0)
您应该查看描述预期内容的Remote File Hierarchy页面。它似乎期望一个“哑”文件系统,它只需要对指定位置的读/写访问。这一事实进一步证明了它适用于Dropbox,它只存储二进制文件。这种类型的服务可以以许多不同的方式实现,这些方式不依赖于除定义的层次结构之外的TICoreDataSync。您只需要一个允许对定义的路径进行标准读/写访问的服务器。要问的重要问题是如何将TICoreDataSync指向特定端点?答案似乎是初始化TICDSFileManagerBasedApplicationSyncManager并设置applicationContainingDirectoryLocation
属性。这里的文档中有一点模糊不清的是它没有说明这是否必须是本地目录的URL。从理论上讲,它是一个NSURL,可以设置为HTTP URL,假设HTTP服务器正确处理I / O方法。
这是我开始在您自己的服务器上存储信息的地方。根据您的问题标签,您看起来正在构建一个iOS应用程序,不幸的是,他们的文档仅讨论了如何将DropboxSDK与iOS应用程序和相应的TICDSDropboxSDKBasedApplicationSyncManager
类一起使用。如果您要构建Mac应用程序,则服务器组件可以透明地应用于您的应用程序。您可以写入从服务器挂载的本地目录,无论是WebDav,SMB,SSH等等,并使用TICDSFileManagerBasedApplicationSyncManager
类。
尽管如此,您可能会对其他一些方法感兴趣。如果您对本土解决方案感兴趣,可以查看我编写的这些教程。
How To Synchronize Core Data with a Web Service – Part 1 How To Synchronize Core Data with a Web Service – Part 2
要使教程制作中的应用程序有价值,还有很多工作要做,但它可能很有见地。
另一个选项是AFIncrementalStore,它提供CoreData和您的Web服务后端之间的无缝通信。
在任何情况下,将这样的数据同步是一项相当大的工作,所以要准备好花大量时间进行开发才能做到正确!
答案 1 :(得分:0)
你有没有看过AFIncrementalStore?这个Heroku introduction video讨论了设置iOS应用程序的简单性,托管可以免费用于生产级别以下的数据访问和存储。可能值得调查。
答案 2 :(得分:0)
Chris是正确的,因为TICoreDataSync只需要一个可以访问的普通分层文件系统。虽然我们没有任何其他使用TICDS而不是其他服务的示例(除了iCloud功能分支),但您首先要看一下子类TICDSApplicationSyncManager
,TICDSDocumentSyncManager
和位于NSOperations的NSOperations在Generic Operations
组中。您可以在项目wiki的更新文档中阅读更多相关内容:https://github.com/nothirst/TICoreDataSync/wiki/Extending-the-Framework
更具体地说,假设您希望通过Amazon S3实例进行同步。您将创建TICDSAmazonS3ApplicationSyncManager
和TICDSAmazonS3DocumentSyncManager
类。然后,在注册同步管理器时,您将使用这些特定的子类。要记住的重要一点是,这些特定于服务的子类只需要实现框架的通信层,所有的同步逻辑都在超类中处理。此外,沟通点定义明确。
我们最近发布了该框架的1.0.2版以及项目维基上的更新文档,示例应用程序和教程。检查一下,如果遇到任何障碍,请在项目的Issues页
上打开一个问题