如何将NSArray转换为NSManagedObject?我想删除uname
字段中包含nurdin
的对象。
let appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let credContext: NSManagedObjectContext = appDel.managedObjectContext!
let request = NSFetchRequest(entityName: "Creds")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "uname = %@", "nurdin")
var result: NSArray = credContext.executeFetchRequest(request, error: nil)!
/* error here*/
credContext.deleteObject(result as NSManagedObject)
我的问题是我不能删除对象,因为这个问题
无法将表达式的类型"NSArray"转换为类型"NSManagedObject"
从参考库文档中可以看到,executeFetchRequests返回AnyObjects:[AnyObject]?
的可选列表
func executeFetchRequest(_ request: NSFetchRequest,
error error: NSErrorPointer) -> [AnyObject]?
你必须首先打开它,然后逐个删除每个对象:
var error: NSError?
if let objects = credContext.executeFetchRequest(request, error: &error) as? [NSManagedObject] {
for obj in objects {
credContext.deleteObject(obj)
}
} else {
// TODO: Error handling here
println("Couldn't fetch objects (error)")
}