Frage

I ' m learning objective-c und halten, stoßen in das @ - symbol.Es ist in verschiedenen Szenarien eingesetzt, zum Beispiel am Anfang einer Zeichenfolge oder zu synthetisieren accessor-Methoden.

Was bedeutet das @ - symbol bedeuten in objective-c?

War es hilfreich?

Lösung

Die @ Charakter ist nicht verwendet, die in C oder C++ - Bezeichner, so es ist verwendet einzuführen Objective-C-Schlüsselwörter in einer Weise, die nicht in Konflikt mit den anderen Sprachen' keywords.Dies ermöglicht die "Objektiven" Teil der Sprache frei zu vermischen mit der C-oder C++ - Teil.

Damit mit sehr wenigen Ausnahmen, jedes mal, wenn Sie sehen @ in einigen Ziel-C-code, die Sie suchen, in die Objective-C-Konstrukte eher als C-oder C++ - Konstrukten.

Die wichtigsten Ausnahmen sind id, Class, nil, und Nil, die sind in der Regel behandelt, als Sprache, Schlüsselwörter, obwohl Sie möglicherweise auch ein typedef oder #define hinter Ihnen.Zum Beispiel der compiler tatsächlich behandeln id speziell in Bezug auf den Zeiger-Typ-Konvertierung Regeln gilt es zu Erklärungen, sowie die Entscheidung, ob zu generieren GC schreiben Barrieren.

Andere Ausnahmen sind in, out, inout, oneway, byref, und bycopy;diese dienen als storage-class-Anmerkungen zu Methode parameter-und Rückgabetypen zu machen, Verteilte Objekte effizienter.(Sie werden Teil der Signatur der Methode zur Verfügung, die von der Laufzeitumgebung, welche sich anschauen kann, um zu bestimmen, wie Sie am besten serialisieren einer Transaktion.) Es gibt auch die Attribute innerhalb @property Erklärungen, copy, retain, assign, readonly, readwrite, nonatomic, getter, und setter;diese sind nur gültig innerhalb des Attribut Abschnitt ein @property Erklärung.

Andere Tipps

Von Objective-C Tutorial:Das @ - Symbol, der Grund , es wird auf der Vorderseite von verschiedenen keywords:

Mit @ sollte machen es einfacher zu bolt-ein Objective-C-compiler auf einer vorhandenen C-compiler.Da das @ ist nicht gültig in jedem Kontext, in C außer einem string-literal, das tokenizer (eine frühe und einfache Schritt im compiler), könnte geändert werden, um Sie einfach Ausschau nach dem @ - Zeichen außerhalb einer string-Konstante (die tokenisierung versteht, string-Literale, so ist es in der Lage ist, zu unterscheiden).Wenn @ begegnet, die die tokenisierung würde der rest der compiler in "Objective-C-Modus." (Die Objective-C-parser wäre verantwortlich für die Rücksendung der compiler wieder zu regulären C-Modus, wenn es erkennt das Ende der Ziel-C-code).

Auch, wenn gesehen in der vor einem string-literal, es macht einen NSString eher als ein 'char *' in C.

Von Macrumors:Objective-C Tutorial, wenn vor dem string-literal:

Es gibt auch @"" NSString Literale.Es ist im Grunde die Kurzform für NSString s +stringWithUTF8String Methode.

Das @ auch fügt unicode-Unterstützung, um C-strings.

Aus der Handbuch:

Objective-C-frameworks verwenden in der Regel keine C-style strings.Statt, Sie passieren Saiten herum, als NSString-Objekte.

Die NSString-Klasse stellt einen Objekt-wrapper für Streicher, die alle die Vorteile, die Sie erwarten würden, einschließlich gebaut-in Speicher management für die Speicherung von beliebigen Zeichenketten der Länge, Unterstützung für Unicode, printf-style formatting utilities und mehr.Weil solche Zeichenfolgen sind Häufig verwendet, obwohl, Objective-C bietet eine Kurznotation für erstellen NSString-Objekte von Konstanten Werten.Benutzen Sie dieses Kürzel, alles, was Sie tun müssen, ist vor einem normalen, double-quoted string mit den @ - symbol, wie in den folgenden Beispielen gezeigt:

NSString *myString = @"My String\n";
NSString *anotherString = [NSString stringWithFormat:@"%d %@", 1, @"String"];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top