2015-05-04 47 views
0

我在解析中有一个名为“目标”的大类。这个类有多个元素,其中一个是PFFile,它总是一个UIImage。下载并保存PFFile(UIImage)以显示在UIImageView中:SWIFT

当我执行“目标”类的查询时,我无法弄清楚如何使用PFFile,并将其更改为UIImage以供使用。

  var query = PFQuery(className:"Goal") 

    let currentUser = PFUser.currentUser()!.username 
    query.whereKey("creator", equalTo: currentUser!) 
    query.findObjectsInBackgroundWithBlock { 
     (objects: [AnyObject]?, error: NSError?) -> Void in 
     if error == nil { 
      // The find succeeded. 
      println("Successfully retrieved \(objects?.count) goals for the TableView.") 
      // Do something with the found objects 
      if let objects = objects as? [PFObject] { 
       for object in objects { 

        let goalType = object["type"] as! String 
        let goalPeriod = object["period"] as! String 
        let goalCategory = object["category"] as! String 
        let goalShortDescription = object["shortDescription"] as! String 
        let goalLongDescription = object["longDescription"] as! String 
        let goalPointvalue = object["pointValue"] as! Int 
        let goalSharedSetting = object["shared"] as! Bool 
        let goalAdoptionCount = object["adoptionCount"] as! Int 
        let goalIsComplete = object["isComplete"] as! Bool 

        let goalSuccessImageData = object["image"] as! PFFile 

        goalSuccessImageData.getDataInBackgroundWithBlock { 
         (imageData: NSData?, error: NSError?) -> Void in 
         if error == nil { 
          if let imageData = imageData { 
           let image = UIImage(data:imageData) 
           self.imageQuery = image 
          } 
         } 
        } 
        let goalSuccessImage : UIImage = self.imageQuery 

        let goalObjectID = object.objectId 
        let goalSpreadCount = object["spreadCount"] as! Int 
        let goalSpreadTotal = object["spreadTotal"] as! Int 
        let goalTotalCompletions = object["totalCompletions"] as! Int 


        let thisGoal = GoalModel(period: goalPeriod, type: goalType, category: goalCategory, shortDescription: goalShortDescription, longDescription: goalLongDescription, pointValue: goalPointvalue, shared: goalSharedSetting, adoptionCount: goalAdoptionCount, isComplete: goalIsComplete, successImage: goalSuccessImage, goalID: goalObjectID!, spreadCount: goalSpreadCount, spreadTotal: goalSpreadTotal, totalCompletions: goalTotalCompletions) as GoalModel 

关于如何修改“成功图像”部分的任何提示?我之前和之后添加了一个空间,以便于查找。

预先感谢您!

+0

您需要下载PFFile本身的数据,请参见http://stackoverflow.com/a/27596932/2227743 – Moritz

+0

那么如果没有数据,对象是什么[“image”]? –

+0

它返回PFFile对象的实例,其中包含获取数据的方法。 PFFile *表示一个包含数据的对象,它不是数据本身。请参阅https://parse.com/docs/osx/api/Classes/PFFile.html – Moritz

回答

1

我使用这种方式在我的项目,如果它帮助是你:

func performSave(sender: UIBarButtonItem){ 
    affichageActivityIndicator() 
    let qos = Int(QOS_CLASS_USER_INITIATED.value) 
    dispatch_async(dispatch_get_global_queue(qos,0)) {() -> Void in 
     dispatch_async(dispatch_get_main_queue()){ 
      if let updateObject = self.currentObject as PFObject? { 
       let imageData = UIImageJPEGRepresentation(imageToSave, 0.1) 
       let imageFile = PFFile(name:"image.png", data:imageData) 

       updateObject["imageFile"] = imageFile 

       // Save the data back to the server in a background task 
       updateObject.saveInBackgroundWithBlock{(success: Bool, error: NSError!) -> Void in 
        UIApplication.sharedApplication().endIgnoringInteractionEvents() 
        if success == false { 
         println("Error") 
        } 
       } 
      } 
     } 
    } 
} 
相关问题