Question

Nous avons un projet qui fonctionne bien sur OS4 mais nous avons des problèmes pour le faire fonctionner sur iPad 3.2.

Le SDK de base est 4.0 et la cible de déploiement est 3.2.

Le code plante sur le simulateur iPad (et l'appareil) avant même qu'il ait démarré, avec l'erreur

"Formatrices de données temporairement indisponibles"

Cela semble fonctionner correctement si je supprime 2 lignes...

AVURLAsset* asset = [AVURLAsset URLAssetWithURL:assetURL options:options];

et

export = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetPassthrough];

Je branche selon quel OS est présent pour que ces lignes ne jamais être atteint sur un appareil 3.2 (je sais qu'ils sont OS4), mais le simple fait qu'ils soient là fait planter la chose avant même qu'elle ne commence.

Des idées?Acclamations

Était-ce utile?

La solution

Si ces lignes ne sont jamais atteintes sur l'iPad, vous pouvez rencontrer un problème du fait de ne pas faibles relier le cadre d'avexte (et potentiellement d'autres).Parce que Avurlasset et Avasseetexportsession n'existent pas comme des symboles de 3.2, votre demande peut s'écraser sur le démarrage sur cet ancien système d'exploitation.

Je décris comment faibles lier un cadre en réponse à un Problème similaire dans Cette réponse .

Autres conseils

Tout d'abord, "Data Formatters temporairement indisponibles" est un message GDB, c'est pas pourquoi votre application plante.Plus d’informations concernant ce message peuvent être trouvées ici.

Vous devez vérifier la disponibilité des classes pendant l'exécution (et non lors de la compilation) si vous souhaitez écrire du code qui s'exécute à la fois sur iOS 3.0 et 4.0.

Vous pouvez le faire en utilisant le NSClassFromString fonctionne comme ceci :

if (NSClassFromString(@"AVURLAsset")) {
    // 4.0 code using AVURLAsset goes here
} else {
    // 3.0 code goes here
}

Essayez ceci (ou similaire):

#if __IPHONE_OS_VERSION_MIN_REQUIRED < 40000
  // code for iOS below 4.0
#else
  // code for iOS 4.0
#endif

volé de cette question .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top