Pergunta

Temos um projeto que funciona bem no OS4, mas estamos tendo problemas para executá-lo no iPad 3.2.

O SDK base é 4.0 e o destino de implantação é 3.2.

O código trava no simulador (e dispositivo) do iPad antes mesmo de ser iniciado, com o erro

"Formatatos de dados temporariamente indisponíveis"

Parece funcionar bem se eu retirar 2 linhas ...

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

e

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

Eu ramifico de acordo com o sistema operacional presente para que essas linhas nunca seja alcançado quando em um dispositivo 3.2 (eu sei que eles são OS4), mas apenas eles estarem lá faz com que a coisa trave antes mesmo de começar.

Alguma ideia?Saúde

Foi útil?

Solução

Se essas linhas nunca forem alcançadas no iPad, você poderá encontrar um problema devido à falta de link fraco da estrutura AVFoundation (e potencialmente de outras).Como AVURLAsset e AVAssetExportSession não existem como símbolos na versão 3.2, seu aplicativo pode travar na inicialização desse sistema operacional mais antigo.

Descrevo como vincular fracamente uma estrutura em resposta a uma problema semelhante em esta resposta.

Outras dicas

Primeiro de tudo, "Formatadores de dados temporariamente indisponíveis" é uma mensagem do GDB, é não por que seu aplicativo falha.Mais informações sobre esta mensagem podem ser encontradas aqui.

Você precisa verificar a disponibilidade de classes durante o tempo de execução (não em tempo de compilação) se quiser escrever código que seja executado no iOS 3.0 e 4.0.

Você pode fazer isso usando o NSClassFromString funcionar assim:

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

Tente isto (ou similar):

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

Roubado de essa questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top