Como faço para incluir chamadas para métodos só presentes na versão de um sistema operacional quando compilar para várias versões?
-
06-07-2019 - |
Pergunta
Eu tenho um aplicativo que está sendo compilado com uma exigência sistema mínimo de Tiger (OS X 10.4), mas eu preciso incluir algum código para lidar com espaços se o aplicativo está sendo executado no Leopard (OS X 10.5).
Como posso fazer isso?
(A chamada eu preciso fazer é -[NSWindow setCollectionBehavior:]
).
Solução
- Defina o seu Base de SDK (para todas as configurações do que você está construindo-alvo) para a versão do sistema operacional que inclui a chamada.
- definir a versão de Implantação para o mais antigo sistema operacional que você quer que seu código para lançamento no dia.
- Para todas as chamadas que não existem em versões anteriores do sistema operacional, você deve testar antes de chamar, usando respondsToSelector: (para métodos) ou testar contra nil (para funções e estática). Você pode, se quiser fazer uma verificação para a versão do sistema operacional, mas é mais robusta para verificar a chamada específica.
O Cross-Desenvolvimento Guia de Programação descreve as técnicas em detalhes.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow