Pergunta

HI all

Eu quero fazer um aplicativo para iPhone 2.2. * E para a versão 3.0. Algum método em 2,2 * é depreciado em 3.0. (Como UITableViewCell setText e setLabel)

Existe alguma maneira de verificar que versão do firmware é usado no iPhone e para definir método diferente para uso

Foi útil?

Solução

Você vai precisar de directivas de pré-processador de uso para a compilação condicional, como __IPHONE_3_0 e construir dois executáveis ??separados.

Por exemplo:

 #ifdef __IPHONE_3_0
 // code specific to version 3
 #else
 // code specific to version 2
 #end

Se você precisa para detectar a versão em tempo de execução você pode usar [[UIDevice currentDevice] SystemVersion]. Ele retorna a string com a versão atual do iPhone OS.

Outras dicas

Como eu mencionei nos comentários antes, cheque: Como atingir um determinado versão do iPhone?

Como mencionado no outro segmento referenciados, enquanto você pode usar diretivas de pré-processador para gerar dois pedidos da base de um código, você ainda vai precisar de duas aplicações (um para 2.x e um para 3.x)

A directiva sobre o tempo de compilação não pode ser usado para tomar uma decisão tempo de execução.

Há mais detalhes no outro segmento.

solução alternativa, basta verificar usando respondsToSelector. Por exemplo -

CGSize expectedLabelSize;
    if ([subTitle respondsToSelector:@selector(sizeWithAttributes:)])
    {
        expectedLabelSize = [subTitle sizeWithAttributes:@{NSFontAttributeName:subTitleLabel.font}];
    }else{
        expectedLabelSize = [subTitle sizeWithFont:subTitleLabel.font constrainedToSize:subTitleLabel.frame.size lineBreakMode:NSLineBreakByWordWrapping];
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top