3 OSと私のiPod touchをクラッシュし、それはまだこのメッセージに私のiPod touch(iOSの3.1.3)のクラッシュ:AVCaptureDeviceは、私がAVCaptureDeviceをチェックするために私のアプリでは、いくつかの条件付きのコーディングを行わ
dyldの:シンボルではありません見つかった:_OBJC_CLASS _ $ _ AVCaptureDeviceから参照
:/var/mobile/Applications/4286D40F-9E33-49AB-9AD9-4F66EB9331A5/TestApp.app/TestApp
に期待:/システム/ライブラリ/フレームワーク/ AVFoundation。フレームワーク/ AVファウンデーション
データフォーマッタは一時的に利用できず、「続行」後に再試行されます。 (現時点でdlopenを呼び出すのは安全ではありません)
mi_cmd_stack_list_frames:スタックに十分なフレームがありません。
mi_cmd_stack_list_frames:スタックに十分なフレームがありません。私のコードで
は、私はこのような条件のチェックを行います。
#if (!TARGET_IPHONE_SIMULATOR)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000 // __IPHONE_4_0
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// ... more code
#endif
#endif
は、私はここをチェックして、これと同じ条件でAVCaptureDeviceを使用するコード内の他の場所です。
私は以前のiOSバージョンのiPodを新しいライブラリにリンクすることはできないと推測しています。どうすれば修正できますか?
古いOSのバージョンと互換性のあるアプリケーションを作成するために別のコンパイラを使用する必要があるのは奇妙です。これは唯一の方法ですか? – TigerCoding
いつも働いていた 'NSClassFromString'テクニックを使うこともできます。ちょっと面倒です。そして、LLVMは、コンパイラ(と将来)の方が優れているので、今すぐ切り替えることもできます。 –
NSClassFromStringを試しても、エラーが発生します。id cls =(NSClassFromString(@ "AVCaptureDevice")); if(cls!= nil){// ...私はターゲットをきれいにし、デバイスからアプリケーションを削除して実行しましたが、同じ問題が引き続き発生します。アプリの開始時にこのチェックを行い、後でアプリで使用できないようにフラグを設定します。しかし、私のNSLogのステートメントは、このチェックに至ることさえありません。 – TigerCoding