Swift:调用中的额外参数 "progressblock"

Swift: Extra Argument "progressblock" in call

我无法准确理解为什么我在尝试在我的块上实施进度计时器时收到问题标题中引用的错误。

func uploadImage(imageData: NSData!) {

    let imageFile = PFFile(name: "\(PFUser.currentUser().username)'s Avatar", data: imageData)

    // Show the HUD to prompt user of upload
    hud = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
    hud.mode = MBProgressHUDModeDeterminateHorizontalBar
    hud.labelText = "Changing Image..."

    // Upload the image
    imageFile.saveInBackgroundWithBlock({ (succeeded: Bool, error: NSError!) -> Void in

        // Check there was no error, begin handling the file upload
        // trimmed out un-necessary code

        }, progressBlock: { (amountDone: Int32) -> Void in
            self.hud.progress = amountDone/100 as Float
    })
}

如果我删除 self.hud.progress = amountDone/100 as Float 行,一切都会如我所料,但是在 progressBlock 中放置任何内容都会导致我的应用程序崩溃。

我正在关注 Parse tutorial for uploading images,唯一不同的是我正在使用 Swift,所以我需要从 Objective-C 进行转换,但我不明白为什么会这样在构建第二个块的语法上产生巨大差异。

这是选角问题。

您需要将 amountDone 变量从 Int32 转换为 FloatCGFloat

var flotAmount = Float(amountDone)

检查 self.hud.progress 的类型,如果它是 Float 则使用

self.hud.progress = Float(flotAmount/100)

如果是 CGFloat 则使用下面一行:

self.hud.progress = CGFloat(flotAmount/100)