【发布时间】:2015-05-28 15:37:00
【问题描述】:
我希望将 http 请求结果与我的 Core Data 数据库同步。例如非常基础的类:
class Category: NSManagedObject {
@NSManaged var id: NSNumber
@NSManaged var name: String
@NSManaged var imageUrl: String
}
我有这种方法可以从请求中获取结果:
apiManager.getRequestJsonParse(Constants.Server.BackendUrl + "categories?lang=cs", completion: { (result, error) -> Void in
completion(categories: [], error: error)
})
结果是从 json 解析的字典。没关系,但现在我想将字典解析到我的类,检查数据库中是否存在,是否存在更新属性,如果不存在则向数据库添加新类别。
我之前在应用程序中使用的方法是我有两个类:Category 和 CategoryCD(类似于 Core Data 的 CD),首先我将 json 解析为 Category 类,而不是检查所有类别是否有 CategoryCD(保存在 CD 中)具有相同的 Id 然后更新,或添加或其他东西。
现在我正在考虑是否有更好的方法可以做到这一点。每次下载新结果时,我都可以删除该类的数据库,然后添加所有结果。这种方式的问题是,如果我有一些我想保留的课程怎么办。就像如果我下载并保存图像,那么我宁愿在课程和保存的图像之间保持联系。
我正在考虑我的旧方法,但将 2 个几乎相同的类(1 个用于核心数据,1 个相同但用于解析)减少到 1 个核心数据类。但是当我初始化这个类时,我必须总是在数据库中创建一个问题,对吗?所以它可能很复杂。
你用什么来做这个?我认为这是非常普遍的问题。你有项目列表,我想让它们离线可用(我之前下载的所有数据)但是当我连接到互联网时,我想用新结果更新(不是从服务器下载全部,只是我要求的响应) .
【问题讨论】:
标签: ios objective-c json swift core-data