访问私有iOS Apis,如何?

时间:2012-10-20 08:53:21

标签: iphone objective-c ios api iphone-privateapi

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

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

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

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

@interface AVCaptureDevice (Private)

- (void)setExposureMode:(int)arg1;

@end

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

那么有人可以将我与一些好的资源联系起来学习私有API编程吗?

1 个答案:

答案 0 :(得分:4)

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

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

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

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

- (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode

事先检查一下(如果你还没有这样做)。