使用Parse"无法解决的错误使用Block"

时间:2015-04-12 21:54:21

标签: ios cocoa-touch swift parse-platform xcode6

我不知道这是用户错误还是由于Xcode和Swift更新。我从Parse中提取图像文件,无论我如何调整语法,我都会遇到持久性错误:

  

swift:64:23:无法调用' getDataInBackgroundWithBlock'与   类型的参数列表'((NSData!,NSError?) - > Void)

我的代码是:

func callData() {

    var imageQuery = PFObject(className: "QuestionMaster")
    let iconImageFile = imageQuery["questionImage"] as! PFFile!
    iconImageFile.getDataInBackgroundWithBlock {
        (imageData: NSData!, error: NSError?) -> Void in

        if (error == nil) {

            self.icon1 = UIImage(data: imageData[0])
            self.icon2 = UIImage(data: imageData[1])
            self.icon3 = UIImage(data: imageData[2])
            self.icon4 = UIImage(data: imageData[3])
            self.icon5 = UIImage(data: imageData[4])
            self.icon6 = UIImage(data: imageData[5])
            self.icon7 = UIImage(data: imageData[6])
            self.icon8 = UIImage(data: imageData[7])
            self.icon9 = UIImage(data: imageData[8])
        }
        else {
            NSLog("Something went wrong.")
        }

我一直在直接从Parse docs工作。我也尝试过:

iconImageFile.getDataInBackgroundWithBlock(imageQuery, block: {
            (imageData: NSData!, error: NSError?) -> Void in

我已经交换!?无济于事。在findObjectInBackgroundWithBlock的代码中,其他地方也会发生同样的事情。

1 个答案:

答案 0 :(得分:2)

这是由于swift 1.2的变化。 Parse应该已经提供了一个修复它的框架版本。从他们的网站下载。

修改

另外,不要忘记用if let

打开imageData值

以下代码适用于使用swift 1.2的最新Parse框架版本

imageFile.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in

    if let imageData = imageData where error == nil
    {
        self.image = UIImage(data: imageData)
    }
}