访问私有iOS Apis,如何?

我想从iOS SDK访问一些与Camera相关的私有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不受支持。 尝试并使用( 参考 ):

 - (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode 

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