我需要代码方面的帮助 为什么在更改 Swift 3 for Swift 4 之后出现?89/5000我正在为 IOS 11 移动,因为我和 8 一起改变了方法的所有元组请帮助我
let action: () -> Void = { [unowned self] in
self.cameraController.takePicture { self.isTakingPicture = false }}
fileprivate func takePicture() {
guard isBelowImageLimit() && !isTakingPicture else { return }
isTakingPicture = true
bottomContainer.pickerButton.isEnabled = false
bottomContainer.stackView.startLoader()
let action: () -> Void = { [unowned self] in
self.cameraController.takePicture { self.isTakingPicture = false }
}
if configuration.collapseCollectionViewWhileShot {
collapseGalleryView(action)
} else {
action()
}
}
}
根据代码行
self.cameraController.takePicture { self.isTakingPicture = false }}
takePicture 期待一个完成块,而 takePicture 没有。
您可以编写以下方法:
fileprivate func takePicture(completion: () -> Void) {
guard isBelowImageLimit() && !isTakingPicture else {
return }
isTakingPicture = true
bottomContainer.pickerButton.isEnabled = false
bottomContainer.stackView.startLoader()
let action: () -> Void = { [unowned self] in
self.cameraController.takePicture { self.isTakingPicture = false
}
}
if configuration.collapseCollectionViewWhileShot {
collapseGalleryView(action)
} else {
action()
}
}
//Need to call the completion block
completion()
}
即使在保护块内部也需要调用完成块,可能带有一些布尔参数,否则"self.isTakingPicture = false"行将不会执行。