这几天我一直在努力解决这个问题,似乎无法弄清楚如何最好地构建它。我绝不是 Objective C 的专家。
我们已经为我们的 Drupal 应用程序开发了一个 RESTful API,并且我们目前在 App Store 中有一个使用 ASIHTTPRequest 连接到它的 iOS 应用程序。但是,正如你们中的一些人可能知道的那样,它不再受支持。所以我们决定过渡到 AFNetworking,并希望以这样一种方式构建它,以便我们可以将它作为一个库开源以与我们的 API 一起使用。
我们当前的应用程序使用 CoreData 并将所有数据存储到 SQLite 数据库中。目前的工作流程如下所示:
Get Request Receive JSON Parse and map JSON to CoreData NSManagedObject Save Context
关于你们建议我将源代码作为库开源的路径,我有几个问题。
只是给一个粗略的概述:
我们有成员、组、事件、消息(最简单的)。
我一直在考虑解决这个问题的几种方法:
将 AFNetworking api 调用和解析/映射方法添加到 NSManagedObject
我喜欢这个概念,但我不确定它是否有意义。然后核心数据模式成为 API 的模式,这很棒。但我担心的是——如果其他使用它的开发人员不想在他们的应用程序中使用核心数据怎么办?最重要的是,我不确定返回多个实例的方法会是什么样子。例如,如果我有一个 NSManagedObject 组,我应该在哪里调用以获取组索引?此外,我们是否将某人锁定在特定的核心数据模型中,这是一件好事吗?
拥有知道如何从 API 检索自己的数据、将其解析为自己的属性的单独对象,然后在公共库之外的某个地方映射到 NSManaged 对象
这种方式听起来也不错,但是我有非常相似的对象具有非常相似的属性。
类别
我在这里读到了一些东西,我可以使用一个类别来添加方法, 将附加属性添加到带有辅助 .h .m 文件的 NSManagedObject 我不确定这是否有意义。
API 类、核心数据类和映射器类。
肯定是乱七八糟的。
欢迎提出更好的建议!
我尝试查看其他一些示例,但我认为我没有足够的 Objective C 知识来正确剖析它们。
主要目标是:
抽象为可在其他应用程序中重用的请求库。为对象实施模式是一个加分项 如果他们不想,不要将人们锁定在 CoreData 模型中或根本不使用 CoreData。
提前感谢您的帮助!