Ios 创建nsmanagedobject而不保存[@Example]
我想创建一个Ios 创建nsmanagedobject而不保存[@Example],ios,nsmanagedobject,nsmanagedobjectcontext,Ios,Nsmanagedobject,Nsmanagedobjectcontext,我想创建一个NSManagedObject,但不想立即保存 在哪里可以找到创建临时NSmanagedObject的示例?这是在IOS7、IOS8上测试的 创建tmp NSManagedContext:要确保上下文解除时,NSManagedObject不会为零,请在应用程序委托中创建一个临时的NSManagedContext 在文件AppDelegate.swift中 import UIKit import CoreData @UIApplicationMain class AppDelegat
NSManagedObject
,但不想立即保存
在哪里可以找到创建临时
NSmanagedObject
的示例?这是在IOS7、IOS8上测试的
创建tmp NSManagedContext:要确保上下文解除时,NSManagedObject
不会为零,请在应用程序委托中创建一个临时的NSManagedContext
在文件AppDelegate.swift中
import UIKit
import CoreData
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
private(set) var tmpContext : NSManagedObjectContext = NSManagedObjectContext()
....
}
创建NSManagedObject:调用customfile.swift
tmp和主上下文。主上下文将用于访问NSManagedObject
实例中的模型
// CONTEXT
let tmpContext = (UIApplication.sharedApplication().delegate as AppDelegate).tmpContext
let managedContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
// ENTITY
let entity = NSEntityDescription.entityForName("MY_ENTITY_NAME", inManagedObjectContext: managedContext)
let obj = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: tmpContext)
保存NSManagedObject:很遗憾,您无法通过传递主上下文来保存对象。为了避免这种情况,您需要复制所有NSManagedObject
var error : NSError?
// CREATE YOUR NSManagedObject
let managedContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
let entity = NSEntityDescription.entityForName("MY_ENTITY_NAME", inManagedObjectContext: managedContext)
let newObj = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
// COLLECT ALL VALUE SET OF YOUR OBJ
let keysObj = (obj.entity.attributesByName as NSDictionary).allKeys
let dictObj = track.dictionaryWithValuesForKeys(keysObj)
newObj.setValuesForKeysWithDictionary(dictObj)
// SAVE ALL
managedContext.processPendingChanges()
managedContext.insertObject(newObj)
managedContext.save(&error) // dont forget to check