ios - 什么是 Swift 中的部分申请闭包#1
问题描述
我试图理解这个崩溃报告,但没有意义,因为函数“applySettings()”不是从 init() 调用的,如崩溃报告中所示。什么是 Swift 中的“部分申请关闭#1”?
这是 init() 函数所需的代码。
public override init()
{
super.init()
discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera, AVCaptureDevice.DeviceType.builtInDualCamera, AVCaptureDevice.DeviceType.builtInTelephotoCamera, AVCaptureDevice.DeviceType.builtInDualWideCamera,
AVCaptureDevice.DeviceType.builtInTripleCamera,
AVCaptureDevice.DeviceType.builtInUltraWideCamera], mediaType: AVMediaType.video, position: .unspecified)
detectLenses()
checkForDeviceAuthorization()
setZoomParams()
sessionQueue.async { [unowned self] in
self.configureSession()
}
}
解决方案
你不能在init
. 我们正在尝试返回初始化的对象;这就是你应该在这里做的一切。self
当完全存在时,其他一切都应该发生在一些后续的配置调用中。
推荐阅读
- ruby-on-rails - Heroku 的异常捕获“连接关闭而没有响应”
- python - 检查应用于数据帧的 np.nan 内部函数
- postgresql - 错误:“BY”处或附近的语法错误¶位置:321
- javascript - 如何从 url 加载文件并在按钮单击时分配给 HTML 文件上传?
- python - 关于使用 MDAPackmol(python 中的 packmol)的问题
- fullcalendar - fullCalendar (v5) 回调/处理程序随时呈现视图?
- mysql - MySQL - UNION 与 JOINS
- html - 如何在 django 模板中执行数学运算
- php - 如何从 influxdb 的数组 JSON 响应中获取 PHP 值
- java - spring data - 在对象中的数组中查询