2010-12-15 21 views
9

He estado usando Objective-C desde hace un tiempo, pero nunca he entendido realmente cuál es el propósito del símbolo @ antes de todas las cadenas. Por ejemplo, ¿por qué usted tiene que declarar una cadena como esta:Objetivo de @ Symbol Before Strings?

NSString *string = @"This is a string"; 

y no como esto:

NSString *anotherString = "This is another string"; 

como lo hace en Java o tantos otros lenguajes de programación. ¿Hay una buena razón?

+3

Ver [¿Qué representa el símbolo @ en objective-c? ] (http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c). –

+0

Eso tiene sentido. ¡Gracias! – Jumhyn

Respuesta

12

denota una NSString (en lugar de una cadena C estándar)

un NSString es un objeto que almacena una cadena Unicode y ofrece un montón de método para ayudar en la manipulación.

una serie C es simplemente un conjunto de caracteres terminados por \ 0 (bytes).

EDITAR: y la buena razón es que Objective-C se basa en C, las construcciones de lenguaje C aún deben estar disponibles. @ "" es una extensión solo para objetivo c.

+0

Lo entiendo ahora. ¡Gracias! – Jumhyn

+4

Cuando ve una @ delante de algo en ObjC, es una buena señal de que es parte de la extensión que ObjC le hace a C. @interface, @implementation, @protocol, @selector, @class, etc. @ es una especie de el espacio de nombres informal Objective-C. Es similar a cómo todo en Cocoa tiene el prefijo 'NS' para que no tenga conflicto con otras cosas que están sucediendo. – Ken