2行はiPadで実行されないことを意味します
-
26-09-2020 - |
質問
OS4に問題を維持するプロジェクトがありますが、IPAD 3.2で実行すると問題があります。
ベースSDKは4.0で、展開ターゲットは3.2です。
エラー
で、開始される前にiPadシミュレータ(およびデバイス)でクラッシュする。「一時的にデータフォーマット」 利用できない "
2行を取り外したら...
AVURLAsset* asset = [AVURLAsset URLAssetWithURL:assetURL options:options];
.
と
export = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetPassthrough];
.
私は、3.2デバイス上でに達しないようにが存在しないように存在するものに従って存在するのですが(私は彼らがOS4であることを知っています)。それが始まる前に。
任意のアイデア? 歓声
解決
これらの行がiPadに到達しない場合は、Avfoundationフレームワーク(およびその潜在的には他の)を結びつけないために問題が発生する可能性があります。AvurlassetとAvassetExportSessionは3.2のシンボルとして存在しないため、アプリケーションはその古いOSの起動時にクラッシュすることがあります。
他のヒント
まず、「一時的に使用不可」の「データフォーマッタ」はGDBメッセージであり、ではなくアプリケーションがクラッシュする理由。このメッセージに関する詳細については、
。iOS 3.0と4.0の両方で実行されるコードを書き込む場合は、実行時にクラスの可用性を確認する必要があります(コンパイル時に)。
このようなNSClassFromString
関数を使用してこれを行うことができます。
if (NSClassFromString(@"AVURLAsset")) {
// 4.0 code using AVURLAsset goes here
} else {
// 3.0 code goes here
}
. これを試してみてください:
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 40000
// code for iOS below 4.0
#else
// code for iOS 4.0
#endif
.
この質問 所属していません StackOverflow