我想从 iOS SDK 访问一些与相机相关的私有 API,例如:
- (void)setExposureMode:(int)arg1;
- (int)exposureMode;
等等。这仅用于我的个人发展,我不打算向商店提交任何应用程序。但我似乎不知道如何访问和使用这些 API。有没有任何教程或书籍解释该过程?
例如,我尝试将此行添加到我的 .h 文件中:
@interface AVCaptureDevice (Private)
- (void)setExposureMode:(int)arg1;
@end
但是当我从我的应用程序调用这个 API 时,它崩溃了。即使respondsToSelector 返回 TRUE。
那么有人可以给我链接一些好的资源来学习私有 API 编程吗?
你所做的在语法上几乎是正确的。
唯一的问题是,在您的类别声明中,您使用的是
int
而不是 float
。您可以尝试更改此设置,看看情况是否有所改善,但我怀疑问题出在其他地方。
对于私有API,没有关于其方法应如何使用的描述。因此,也许您在错误的时间或在错误的上下文中调用了方法。检查崩溃日志可能可以提供一些见解。
还有一件事,看看你的崩溃:它崩溃的事实可能是因为你设置的exposureMode不受支持。尝试并使用(ref):
- (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode
提前检查(如果您还没有这样做)。