appdelegate delegado de instância compartilhada
-
15-11-2019 - |
Pergunta
MyAppDelegate *appD;
appD = [UIApplication sharedApplication];
if(appD.sw1.on)
NSLog(@"It is ON");
else
NSLog(@"It is OFF");
Não dá erro durante a compilação.É executado sem qualquer aviso, mas não funciona.
Não vejo qual é o problema.
...
EDITAR:Meu Deus, deveria ter chamado o método delegado também:
appD = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
Solução
Eu recomendo este método para compartilhar o delegado do aplicativo:https://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21marcadores
Outras dicas
e instanciei um appDelegate…
Não, você não instanciou nada, apenas declarou uma variável que pode apontar para o delegado do seu aplicativo.Mas você ainda não atribuiu nada a essa variável.
E instanciar outro objeto seria errado aqui, pois a instância delegada do aplicativo já existe.Você só precisa fazer referência ao delegado do aplicativo existente e atribuí-lo à sua variável:
appD = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
(Aliás, você deve seguir as convenções de nomenclatura.Os nomes das classes devem sempre começar com letra maiúscula.)