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

标签 swift swift4

我需要有关其代码的帮助 为什么在将 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/

相关文章:

ios - removeFromSuperview() 耗时太长

swift - 为什么 Firestore 返回我的 where 查询中的所有记录

ios - let 声明需要一个初始化表达式

ios - swift : Make a very short vibration

ios - 谷歌地图 Mapview 不以标记为中心

ios - 使用 UITableView dequeueReusableCell 时出现内存泄漏

ios - 移动 Swift 数组

ios - 创建可读 JSON 字符串的最简单方法是什么?

ios - 隐藏键盘 Swift 4 后 View 底部的元素消失

swift - 如何显示和隐藏标签?