从解析中获取数据并将其存储到Core Data

时间:2015-06-17 16:02:11

标签: swift core-data parse-platform ios8

我试图将一些数据存储到从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

由于它返回真实,我认为所有数据都已存储。但是当我检索时,只会存储一个图像。我不明白如何解决这个问题。请帮帮我!

0 个答案:

没有答案