【发布时间】:2015-07-11 15:24:18
【问题描述】:
我有一个类似的课程:
@objc(User)
class User: NSManagedObject {
@NSManaged var id: String
//MARK: - Initialize
convenience init(id: String, context: NSManagedObjectContext?) {
// Create the NSEntityDescription
let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: context!)
// Super init the top init
self.init(entity: entity!, insertIntoManagedObjectContext: context)
// Init class variables
self.id = id
}
}
我在 ViewController 中创建了一个新用户:
managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext!
var aUser = User(id: "500T", context: managedObjectContext)
我有另一个类“组”,其中组有很多用户。为了节省用户,我做了类似
aGroup!.users = NSSet(array: users!)
!managedObjectContext.save
我不想保存所有用户。如何在不保存用户的情况下实例化用户?
【问题讨论】:
-
只是不要保存。完成用户操作后重置 moc。或者创建一个 NSManagedObject 子类。我相信你可以在 moc 之外使用它们。
-
@RMenke 我刚刚更新了我的问题,因为实际上我不知道在哪里重置,因为我将所有用户存储在一个数组中,然后使用关系将此 NSSet 保存到组
-
用户有什么不同吗?然后您可以迭代用户数组并保存反向关系。
aUser.group = aGroup但是要真正解决您的问题,您应该创建另一个与 User 具有相同值类型的类,并仅为需要保存的那些创建 NSManagedObjects -
@RMenke 实际上我将用户添加到一个数组以存储本地和相同的用户(复制)到一个内存数组只是为了更新一个 tableviewcontroller。可以从组中添加或删除用户。在我的本地数组中,我想存储所有操作历史记录(例如:用户添加到组,用户从组中删除,用户添加到组)并且在表格视图中我只想要最后一个状态(例如基于上一个示例:用户添加分组)。