1

我正在 iOS 上开发一个具有多对多关系、本地持久性和用户交互的社交应用程序。我曾尝试在 iOS 中使用本机 Parse API,但发现执行所有客户端-服务器逻辑太麻烦了。所以我的重点转移到寻找同步解决方案上。

经过一番研究,我发现 AFIncrementalStore 非常易于使用,并且高度集成在 CoreData 中。我刚开始研究这个,我有两个问题要问:

1)如何进行认证过程?它在 AFRESTClient 中吗?2) 如何设置 AFRESTClient 以匹配 Parse 的 REST API?(一个例子会很棒!)

PS我还找到了FTASync,这似乎是另一种解决方案。对这个框架有什么想法吗?

任何关于客户端-服务器同步解决方案的一般建议都将受到高度赞赏!

谢谢,

张磊

4

2 回答 2

2

回到 iOS 5,Apple 默默推出了 NSIncrementalStore 来管理 API 和持久存储之间的连接。因为我自己无法更好地表达:

NSIncrementalStore 是 NSPersistentStore 的抽象子类,旨在“创建以增量方式加载和保存数据的持久存储,允许管理大型和/或共享数据集”。虽然这听起来可能不多,但考虑到我们几乎所有的数据库适配器都依赖于从大型共享数据存储中增量加载。我们这里有一个该死的奇迹。

来源: http: //nshipster.com/nsincrementalstore/

话虽如此,我一直在开发自己的 NSIncrementalStore(专为 Parse 构建并利用 Parse iOS/OS X SDK),欢迎您在https://github 上查看/使用/贡献该项目。 com/sbonami/PFIncrementalStore

于 2013-12-17T20:08:17.510 回答
1

看看这个 StackOverflow 问题Chris Wagner 在 raywenderlich.com 上的文章

链接的 SO 问题包含有关如何在每个 Parse 请求中包含身份验证令牌的示例。因此,您只需要先让用户登录,并存储他们的令牌以将其包含在每个后续请求中。

Chris Wagner 的教程有一个名为 SDAFParseApiClient 的示例 AFHTTPClient,用于与 Parse REST API 进行通信。您必须将其调整为 AFRESTClient 子类,但它应该给您一个开始。

您正在考虑的两种解决方案之间的其他一些想法:

  • AFIncrementalStore 不允许用户在没有网络连接的情况下进行任何更改,而 FTASync 在本地保留完整的 Core Data SQLite 存储,并在您告诉它时将更改同步到服务器。
  • FTASync 要求您将所有同步的托管对象设置为 FTASyncParent 的子类,并具有同步元数据的额外属性。AFIncrementalStore 将其元数据保存在幕后,而不是在您的模型中。
  • FTASync 似乎没有被广泛使用,并且一年多没有更新;如果你使用它,你可能会维护它。
于 2013-12-06T02:20:40.577 回答