2

我想从 iOS SDK 访问一些与相机相关的私有 API,例如:

- (void)setExposureMode:(int)arg1;
- (int)exposureMode;

等等。这只是为了我的个人发展,我不打算向商店提交任何应用程序。但我似乎无法弄清楚如何访问和使用这些 API。是否有任何教程或书籍解释该过程?

例如,我尝试将此行添加到我的 .h 文件中:

@interface AVCaptureDevice (Private)

- (void)setExposureMode:(int)arg1;

@end

但是当我从我的应用程序调用这个 API 时,它崩溃了。即使 respondsToSelector 返回 TRUE。

那么任何人都可以将我链接到一些好的资源来了解私有 API 编程吗?

4

1 回答 1

4

你所做的在语法上几乎是正确的。

唯一的问题是,在您的类别声明中,您使用int的是float. 您可以尝试更改此设置,看看情况是否有所改善,但我怀疑问题出在其他地方。

对于私有 API,没有关于应该如何使用其方法的描述。所以,也许你在错误的时间或错误的上下文中调用了一个方法。可能检查崩溃日志可以提供一些见解。

还有一件事,看看你的崩溃:可能它崩溃的事实是因为你设置的 exposureMode 不受支持。尝试使用(参考):

- (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode

事先检查(如果您还没有这样做)。

于 2012-10-20T08:56:01.737 回答