2012-05-24 9 views
5

Eventuali duplicati:
Purpose of @ Symbol Before Strings?Perché il '@' usato prima delle stringhe in Objective-C?

Sono stato curioso di ciò che @ significa prima di ogni stringa è oggettiva C. E 'più facile per il compilatore, o più efficiente in qualche modo?

Esempio:

NSString* flavour = @"Chocolate" 
+1

Duplicato - http://stackoverflow.com/q/25749/542425 – 0x8badf00d

+0

"Il segno @ viene utilizzato spesso in Objective-C per indicare estensioni al linguaggio." src- http://www.otierney.net/objective-c.html –

risposta

0

Distinguere tra le stringhe C e l'Objective-C classe Penso

3

Il carattere @ non viene utilizzato negli identificatori C o C++, quindi è utilizzato per introdurre Objective-C parole chiave della lingua in un modo che non sia in conflitto con le parole chiave delle altre lingue. Ciò consente alla parte "Obiettivo" della lingua di interagire liberamente con la parte C o C++.

+0

Puoi vedere i suoi altri usi in cose come '@ interface',' @ implementation', '@ property',' @ synthesize', ecc. – Jasarien

1

Poiché Objective-C è un superset di plain C, deve esistere un modo per distinguere i letterali NSString semplici stringhe C (che sono in pratica solo i puntatori char*).

8

@"Chocolate" è solo una scorciatoia per creare un'istanza NSString. Si potrebbe anche usare:

[[NSString alloc] initWithUTF8String:"Chocolate"]; 

Se non è stato utilizzato il simbolo @ si creerebbe una stringa C (char array).

Problemi correlati