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
转换为 Float
或 CGFloat
。
var flotAmount = Float(amountDone)
检查 self.hud.progress
的类型,如果它是 Float
则使用
self.hud.progress = Float(flotAmount/100)
如果是 CGFloat 则使用下面一行:
self.hud.progress = CGFloat(flotAmount/100)
我无法准确理解为什么我在尝试在我的块上实施进度计时器时收到问题标题中引用的错误。
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
转换为 Float
或 CGFloat
。
var flotAmount = Float(amountDone)
检查 self.hud.progress
的类型,如果它是 Float
则使用
self.hud.progress = Float(flotAmount/100)
如果是 CGFloat 则使用下面一行:
self.hud.progress = CGFloat(flotAmount/100)