Я попытался использовать метод 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 я заметил, что можно использовать закрытие (примеры с массивом целых чисел).