2012-05-24 5 views
5

Duplicar posible:
Purpose of @ Symbol Before Strings?¿Por qué se usa '@' antes de las cadenas en Objective-C?

que he tenido curiosidad sobre lo que significa @ antes de cada cadena es objetiva C. Es más fácil para el compilador, o más eficiente de alguna manera?

Ejemplo:

NSString* flavour = @"Chocolate" 
+1

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

+0

"El signo @ se utiliza a menudo en Objective-C para denotar extensiones del idioma." src- http://www.otierney.net/objective-c.html –

Respuesta

0

Diferenciar entre cadenas de C en el objetivo-c Classe Creo

3

El carácter @ no se utiliza en los identificadores de C o C++, por eso se usa para introducir Objective-C palabras clave de idioma de una manera que no entre en conflicto con las palabras clave de otros idiomas. Esto permite que la parte "objetiva" del lenguaje se mezcle libremente con la parte C o C++.

+0

Puede ver sus otros usos en cosas como '@ interface',' @ implementation', '@ property',' @ synthesize', etc. – Jasarien

1

Dado que Objective-C es un superconjunto de C simple, tiene que haber una manera de distinguir NSString literales cadenas simples C (que son básicamente char* punteros).

8

@"Chocolate" es solo un acceso directo para crear una instancia de NSString. También es posible usar:

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

Si no utiliza la @, se crearía una cadena C (char matriz).

Cuestiones relacionadas