我试图将一些数据存储到从Parse获取的Core Data,如下面的代码所示。
func storeAllDataFromParseToCore(){
let context : NSManagedObjectContext = appDel.managedObjectContext!
let insertNew = NSEntityDescription.insertNewObjectForEntityForName("SomeEntity", inManagedObjectContext: context) as! NSManagedObject
let query = PFQuery(className: "SomeClass")
query.selectKeys(["Name","Image","Type"])
query.findObjectsInBackgroundWithBlock({(dummyObjects : [AnyObject]?,error :NSError?)-> Void in
if error == nil {
for obj : AnyObject in dummyObjects! {
println(dummyObjects?.count)
insertNew.setValue(obj.objectForKey("Name"), forKey: "name")
insertNew.setValue(obj.objectForKey("Type"), forKey: "type")
let res = context.save(nil)
println("before \(res)")
let file : PFFile = obj.objectForKey("Image") as! PFFile
file.getDataInBackgroundWithBlock({(data : NSData?, error : NSError?)-> Void in
insertNew.setValue(data, forKey: "image")
let val = context.save(nil)
println(val)
})
}
}
})
}
当我保存时,它总是返回true,但是当我从核心数据中再次获取时,并不是所有图像和名称都被存储。例如:如果我在解析时有2个图像和相应的名称,则只存储一个。 在控制台中,它打印如下所示。
optional(2)
before true
optional(2)
before true
true
true
由于它返回真实,我认为所有数据都已存储。但是当我检索时,只会存储一个图像。我不明白如何解决这个问题。请帮帮我!