Ich habe gerade die klare Erklärung, was "- & gt;" Notation ist hier: Dot (".") Operator und Pfeil ("- & gt;") Operator in C vs. Objective-C verwenden
Aber ich verstehe immer noch nicht was sind eigentlich die Anwendungsfälle dieser Notation in Objective-C?
Hier ist das Beispiel von dem ich rede: Ссылка - Warum sind all diese Strings wie internal- & gt; lock dort geschrieben - warum nicht einfach Ivars oder Punktnotation?
Ähnliches Thema: Leistung von object_setClass () stattdessen Zuweisen eines ISA-Zeigers .
Aus Ihrer Frage ist nicht klar, ob Sie verstehen, was der Operator ->
tut.
Dieses Beispiel in der GNUStep NSOperation-Quelle ist mit einem ivar. Das macht der Operator ->
- er deneferenziert den Zeiger und greift auf das benannte Element zu.
Wie für "Warum nicht Punktnotation verwenden?" Die offensichtliche Antwort wäre, dass sie nicht durch einen Accessor gehen wollten. Das Durchlaufen eines Accessors ist langsamer als der direkte Zugriff und hat keinen wirklichen Vorteil in einem Fall wie diesem, in dem wir nur mit einem "dummen" internen Zustand arbeiten.
Wann sollten Sie es in Ihrem Objective-C-Code verwenden? Hauptsächlich, wenn Sie über einen Zeiger auf eine Struktur zugreifen. Es ist selten erforderlich, direkt auf die Instanzvariablen eines anderen Objekts zuzugreifen. Wenn Sie dies tun, ist dieser Code die Ausnahme, nicht die Regel.
Kann in diesem Fall sein. Ich sah ein Beispiel in Apples Reachability.m-Datei. Hier ist es:
%Vor%Sie können damit eine globale Variable von einem Objekt in einer Klassenmethode aufrufen.
->
wird verwendet, um auf Strukturelemente in Ziel-C-Sprache zuzugreifen.
Beispiel:
%Vor%Um auf "Name" Mitglied der Studentenstruktur zuzugreifen, müssen Sie - & gt; Betreiber wie:
%Vor%Tags und Links objective-c notation