2

次のようなカメラに関連するiOSSDKからいくつかのプライベートAPIにアクセスしたいと思います。

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

などこれは私の個人的な開発のためだけであり、ストアにアプリを提出する予定はありません。しかし、これらのAPIにアクセスして使用する方法がわからないようです。手順を説明するチュートリアルや本はありますか?

たとえば、次の行を.hファイルに追加してみました。

@interface AVCaptureDevice (Private)

- (void)setExposureMode:(int)arg1;

@end

しかし、アプリからこのAPIを呼び出すと、クラッシュします。responseToSelectorはTRUEを返しますが。

では、プライベートAPIプログラミングについて学ぶために、誰かが私をいくつかの優れたリソースにリンクできますか?

4

1 に答える 1

4

あなたがしていることは構文的にほとんど正しいです。

唯一の問題は、カテゴリ宣言で。intの代わりに使用していることですfloat。これを変更して状況が改善するかどうかを確認することもできますが、問題は他の場所にあると思われます。

プライベートAPIでは、そのメソッドの使用方法に関する説明はありません。したがって、間違った時間に、または間違ったコンテキストでメソッドを呼び出している可能性があります。おそらくクラッシュログを調べることで、いくつかの洞察を得ることができます。

もう1つ、クラッシュを見てみましょう。クラッシュしているのは、設定したexposureModeがサポートされていないためである可能性があります。試して使用してください(ref):

- (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode

事前に確認してください(まだ行っていない場合)。

于 2012-10-20T08:56:01.737 に答える