Question

Dans l'exemple suivant, combien de messages sont envoyés à myObject?

- (void) myMethod:(id) myObject
    NSLog(@"%@", myObject.myStringProperty);
    NSLog(@"%@", myObject.myStringProperty);
    NSLog(@"%@", myObject.myStringProperty);
}

Je suis juste curieux d'obtenir l'objectif-C potentiellement en cache la valeur renvoyée par myStringProperty sur la pile. La valeur renvoyée par myStringProperty pourrait changer entre les messages successifs, donc peut-être que la mise en cache n'a pas de sens.

Était-ce utile?

La solution

Trois

Je suis juste curieux d'obtenir l'objectif-C potentiellement en cache la valeur renvoyée par MyStringProperty sur la pile. La valeur renvoyée par MyStringProperty pourrait changer entre les messages successifs, donc peut-être que la mise en cache n'a pas de sens.

Non, ce n'est pas mis en cache. Chaque message OBJC est envoyé, à condition que bien sûr myObject n'est pas nil.

Le compilateur n'a aucune idée des effets secondaires dans l'exécution de la méthode (1) ou de l'influence de l'état global (2).

  1. Par exemple, MyObject ou tout ce qu'il fait référence change jamais lors de l'exécution de l'obtention myStringProperty?
  2. Par exemple, le résultat est-il affecté par l'heure actuelle?

Autres conseils

Vous pouvez définir un point de rupture sur - [MyObject MyStringProperty] et voir par vous-même. Si MyStringProperty est une méthode Getter que vous vous implémentez, cliquez simplement dans la gouttière gauche à côté de l'implémentation de la méthode pour définir le point d'arrêt.

S'il s'agit d'une méthode d'accessoire synthétisé, entrez-le comme un point d'arrêt symbolique dans le navigateur de points d'arrêt de Xcode. Cliquez sur l'icône de flèche droite dans la section Navigator pour sélectionner le navigateur de point d'arrêt, appuyez sur + en bas de la fenêtre et choisissez "Ajouter un point d'arrêt symbolique…". Type - [theclassName myStringProperty] Dans le champ Symbole, puis cliquez sur Terminé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top