我尝试使用 AnyObject.filter 方法,但是返回以下错误:
闭包参数列表的上下文类型需要 1 个参数,不能隐式忽略。
这是我的代码:
func listCaptureDevices(type: String?) -> [AnyObject]!
{
// Initialize capture session
let captureSession = AVCaptureSession()
// List all capture devices
captureSession.sessionPreset = AVCaptureSessionPresetLow
let devices = AVCaptureDevice.devices()
if type == nil
{
return devices
}
// Filter by device type
return devices.filter() {
if (device.hasMediaType(type == "audio" ? AVMediaTypeAudio : AVMediaTypeVideo))
{
return true
}
}
}
我观察到 AnyObject 接受一个谓词作为参数,但是在我观察到的 Swift 示例中,可以使用闭包(整数数组的示例)。