实例化一个 NSManagedObject 而不保存它
Instantiate a NSManagedObject without saving it
我有一个 class 喜欢 :
@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)
我有另一个 class "Group",其中组有很多用户。为了节省用户,我做了类似
的事情
aGroup!.users = NSSet(array: users!)
!managedObjectContext.save
我不想保存所有用户。如何在不保存的情况下实例化用户?
我找到了答案并向用户初始化添加了一个 needSave 布尔值。也许这不是最佳答案,但它确实有效。
@objc(User)
class User: NSManagedObject {
@NSManaged var id: String
//MARK: - Initialize
convenience init(id: String, needSave: Bool, context: NSManagedObjectContext?) {
// Create the NSEntityDescription
let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: context!)
if(!needSave) {
self.init(entity: entity!, insertIntoManagedObjectContext: nil)
} else {
self.init(entity: entity!, insertIntoManagedObjectContext: context)
}
// Init class variables
self.id = id
}
}
@objc(User)
public class User: NSManagedObject {
convenience init(id: String, context: NSManagedObjectContext?) {
// Create the NSEntityDescription
let entity = User.entity()
self.init(entity: entity, insertInto: context)
// Init class variables
self.id = id
}
}
我有一个 class 喜欢 :
@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)
我有另一个 class "Group",其中组有很多用户。为了节省用户,我做了类似
的事情aGroup!.users = NSSet(array: users!)
!managedObjectContext.save
我不想保存所有用户。如何在不保存的情况下实例化用户?
我找到了答案并向用户初始化添加了一个 needSave 布尔值。也许这不是最佳答案,但它确实有效。
@objc(User)
class User: NSManagedObject {
@NSManaged var id: String
//MARK: - Initialize
convenience init(id: String, needSave: Bool, context: NSManagedObjectContext?) {
// Create the NSEntityDescription
let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: context!)
if(!needSave) {
self.init(entity: entity!, insertIntoManagedObjectContext: nil)
} else {
self.init(entity: entity!, insertIntoManagedObjectContext: context)
}
// Init class variables
self.id = id
}
}
@objc(User)
public class User: NSManagedObject {
convenience init(id: String, context: NSManagedObjectContext?) {
// Create the NSEntityDescription
let entity = User.entity()
self.init(entity: entity, insertInto: context)
// Init class variables
self.id = id
}
}