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.

Foi útil?

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).

  1. exemplo:não myObject ou qualquer coisa que referências mudar durante a execução de ficar myStringProperty?
  2. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top