这个功能如何工作?
- (NSInteger)selectFpsForFormat:(AVCaptureDeviceFormat *)format {
Float64 maxSupportedFramerate = 0;
for (AVFrameRateRange *fpsRange in format.videoSupportedFrameRateRanges) {
maxSupportedFramerate = fmax(maxSupportedFramerate, fpsRange.maxFrameRate);
}
return fmin(maxSupportedFramerate, kFramerateLimit);
}
因为 return fmin(maxSupportedFramerate, kFramerateLimit);
它是一个float64而不是一个NSInteger?
1 回答
因为Objective-C是C,C specification表示:
另请参阅
return
语句的定义,了解在这种情况下算术转换适用的原因:然后再去阅读6.5.16.1.3简单的任务......你可以继续沿着规格的兔子洞走下去,尽可能深 . :d
但关键的一点是,在C中,浮点值可以隐式转换为整数,并且指定了转换后的方式 .