como executar o meu iPhone 2.0 aplicativo no iPhone OS 2.0 e também 3.0 e sistema operacional acima

StackOverflow https://stackoverflow.com/questions/1464239

Pergunta

eu tenho iphone com OS ver. 2.0 i li que para loja de aplicativos tudo appplication deve ser executado 3.0 os.so como eu poderia fazer o meu aplicativo para ser executado tanto em firmware.is Existe uma maneira que eu possa detectar se OS ver.> 3,0 statments diferentes, em seguida, executar Alse statments correr para baixo a 3,0 os.currently eu estou usando isso.

#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;    
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];  
#endif

será que vai ser executado em ambos firmware

Eu quero fazer meu aplicativo a ser executado em> = 3.0 OS e menor do que isso ... Por favor, ajude-me

Como posso verificar o meu pedido de métodos obsoleto ... i só pode ver esta linha como obsoleto cell.text = CellValue;

há alguma coisa para change.i ter instalado novo SDK chamado iphone_sdk_3.0__leopard__9m2736__final.dmg

Foi útil?

Solução

Seu código acima não será executado em ambos os conjuntos de sistemas operacionais. Quando você usa o #if declarações, que são basicamente excluindo código para uma versão do sistema operacional para que determinada compilação. Em outras palavras, cada versão que você construir, um quando você definir __IPHONE_3_0 e um quando você não fizer isso, irá excluir o código para o outro.

O que você está fazendo está construindo dois executáveis, um que é construído para __IPHONE_3_0 e outro para! __IPHONE_3_0.

Se você quer construir um executável, que é um aplicativo, que funciona em ambos, então você precisa substituir as declarações #if com ifs tempo de execução, não compila #ifs tempo, como:

if (theOS >= kiPhone3)
   ....
else
   ....

Você também pode ligar em bibliotecas que são 3.0 apenas, mas de teste para a disponibilidade do quadro em tempo de execução, e então pule a chamada se os métodos não estão disponíveis. Existem diferentes chamadas que você precisa para usar, um para verificar se um método está disponível e uma para se uma classe está disponível:

Class newClass = (NSClassFromString(@"NewClassName"));
    if (newClass != nil)

A última coisa, há uma versão mais recente do SDK do que o que você mencionou.

Boa sorte!

Outras dicas

Houve um post semelhante há algum tempo. Ter um olhar para amostra MailComposer da Apple para ver en exemplo de um aplicativo que suporta tanto 3.0 e 2.x firmware

Se você construí-lo contra a 2.0 (ou 2.1 ou 2.2.1, etc) SDK, ele será executado em que SDK e qualquer versão posterior, a menos que a Apple suporte especificamente descontinuar para esse SDK. Eu vejo uma abundância de aplicativos na App Store que dizem que trabalhar com iPhone OS 2.x ou mais tarde, e eles correm bem no meu iPhone 3G rodando 3.1.

As directivas if-else irá esconder uma parte do código do compilador para que ele não será executado no software.

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