gpt4 book ai didi

swift - 在 Swift 4 或更高版本中调用此函数时,必须传递 '()' 元组;您的意思是输入类型为 '()' 吗?

转载 作者:行者123 更新时间:2023-11-30 11:40:37 25 4
gpt4 key购买 nike

我需要有关其代码的帮助 为什么在将 Swift 3 更改为 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 需要一个完成 block ,而 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()
}

即使在保护 block 内也需要调用完成 block ,可能带有一些 bool 参数,否则“self.isTakingPicture = false”行将不会被执行。

关于swift - 在 Swift 4 或更高版本中调用此函数时,必须传递 '()' 元组;您的意思是输入类型为 '()' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49329330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com