【发布时间】:2015-03-20 19:56:32
【问题描述】:
到目前为止,我的结构如下:
- Singleton NetworkingManager(登录、注销 API 调用)
- 子类 NSManagedObject(带有子扩展名)
我不知道如何构建应用程序的这一部分?
我需要 PersistentManager/global ObjectManagedContext 吗?
这是我的课程:
NetworkingManager(API 调用)
func getContacts() {
GET(APIURL.URL_CONTACTS ,parameters: nil,
{ (operation : NSURLSessionDataTask!, response : AnyObject!) -> Void in
var contacts = [Contacts]()
contacts <<<<* response
//_sharedPersistentManager.save(contacts!)
}, { (operation : NSURLSessionDataTask!, error : NSError!) -> Void in
println("Error contacts")
})
}
型号
import Foundation
import CoreData
class Contacts: NSManagedObject, Deserializable {
@NSManaged var firstname: String
@NSManaged var lastname: String
@NSManaged var id: String
required init(data: [String: AnyObject]) {
let managedContext = (UIApplication.sharedApplication().delegate
as AppDelegate).managedObjectContext!
let entity = NSEntityDescription.entityForName("Contacts", inManagedObjectContext: managedContext)!
super.init(entity: entity, insertIntoManagedObjectContext: managedContext)
self.id <<< data["id"]
self.firstname <<< data["1"]
self.lastname <<< data["2"]
}
}
此代码失败...(Bad_ACCESS)
我在基本的类设计上苦苦挣扎。 好心人贴一些伪代码,我能理解基本概念。
所有教程都解释了如何保存或获取一些数据,但并不是整个应用程序的真正概念......
我正在寻找一个基本概念,例如:
- 您应该实现一个 Persistent Manager Singleton 类
//持久化管理器
- 全局 ObjectManagedContext
- 辛格尔顿
- 功能保存 (model1: Model1)
- 功能保存 (model2: Model2)
- ....
//网络管理器
- 辛格尔顿
- ...
编辑:
- 添加了一些代码
- 添加了进一步的解释
【问题讨论】:
-
你的代码中有太多非标准的东西,以至于无法判断你的问题可能出在哪里。
<<<是什么?还是<<<<*?这些不是标准的 Swift 运算符。那个GET(...)电话是什么?你使用了太多自定义的东西,以至于很难判断到底发生了什么。 -
github.com/isair/JSONHelper GET 是一个 API 调用。我忘记发布函数标题了。我认为问题出在我的整个结构上。小代码问题以后很容易解决。
-
联系人类(复数)有什么用?我假设这个类可能代表一个联系人(人),在这种情况下,宁可使用单数名称 Contact 作为类名。也不确定您是否要从对象 init() 方法内部创建对象并将其插入 MOC。
-
是的,你是对的,我将其重命名为联系人。由于 Json 解析协议,我必须实现 init 方法。
标签: ios swift core-data persistentmanager