Это довольно простое расширение для AVAsset
в Swift 4 , чтобы получить размер видео, если доступно:
extension AVAsset {
var screenSize: CGSize? {
if let track = tracks(withMediaType: .video).first {
let size = __CGSizeApplyAffineTransform(track.naturalSize, track.preferredTransform)
return CGSize(width: fabs(size.width), height: fabs(size.height))
}
return nil
}
}
Я думаю, что наиболее подходящим API для обработки сбоев является возвращение второго целочисленного кода ошибки в вашем API, например:
int myfunc(args, int* realReturn);
Возвращенное значение int является кодом ошибки.
Предыдущий вывод передается как указатель в вызывающем коде:
int myInt;
if (myFunc(args, &myInt) != 0) {
//handle error
}