Mensagem básica de contagem em objective-c
-
14-11-2019 - |
Pergunta
No exemplo a seguir quantas mensagens são enviadas para myObject
?
- (void) myMethod:(id) myObject
NSLog(@"%@", myObject.myStringProperty);
NSLog(@"%@", myObject.myStringProperty);
NSLog(@"%@", myObject.myStringProperty);
}
Eu só estou curioso sobre objective-c, potencialmente, a colocação em cache o valor retornado pelo myStringProperty
na pilha.O valor retornado por myStringProperty
pode mudar entre as sucessivas mensagens de modo que talvez o cache não faz sentido.
Solução
Três
Eu só estou curioso sobre objective-c, potencialmente, a colocação em cache o valor retornado por myStringProperty na pilha.O valor retornado por myStringProperty poderia mudar entre sucessivas mensagens de modo que talvez o cache não faz sentido.
Não, não é armazenada em cache.Cada objc mensagem é enviada, desde, é claro myObject
não é nil
.
O compilador não tem nenhuma idéia sobre quaisquer efeitos secundários dentro do método de execução de (1) ou a influência do estado global (2).
- exemplo:não myObject ou qualquer coisa que referências mudar durante a execução de ficar
myStringProperty
? - exemplo:é o resultado afetada pela hora atual?
Outras dicas
Você pode definir um ponto de interrupção -[myObject myStringProperty] e veja por si mesmo.Se myStringProperty é um método getter que você implementar a si mesmo, apenas clique em à esquerda da calha avançar para a implementação do método para definir o ponto de interrupção.
Se esta é sintetizada acessor método, digite-o como um simbólica ponto de interrupção no Xcode pontos de interrupção da navigator.Clique na seta à direita do ícone no navegador secção para seleccionar o ponto de interrupção navegador, pressione + na parte inferior da janela, e escolha "Adicionar Simbólica ponto de Interrupção...".Tipo -[TheClassName myStringProperty] o símbolo do campo e, em seguida, clique em Concluído.