iPhone versão do firmware cheque
-
21-08-2019 - |
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
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];
}