2010-12-15 39 views
9

J'utilise Objective-C depuis un moment, mais je n'ai jamais vraiment compris l'objectif du symbole @ avant toutes les chaînes. Par exemple, pourquoi vous devez déclarer une chaîne comme ceci:Objectif de @ Symbol Before Strings?

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

et non comme ceci:

NSString *anotherString = "This is another string"; 

comme vous le faites en Java ou tant d'autres langages de programmation. Y a-t-il une bonne raison?

+3

Voir [Que représente le symbole @ dans objectif-c? ] (http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c). –

+0

Cela a du sens. Merci! – Jumhyn

Répondre

12

Il désigne un NSString (plutôt qu'une chaîne standard C)

un NSString est un objet qui stocke une chaîne de caractères Unicode et fournit un tas de méthode pour aider à manipuler.

Une chaîne C est juste un groupe de caractères (octets) terminé par \ 0.

EDIT: et la bonne raison est que Objective-C construit au-dessus de C, les constructions de langage C doivent être encore disponibles. @ "" est une extension d'objectif-c seulement.

+0

Je l'ai maintenant. Je vous remercie! – Jumhyn

+4

Lorsque vous voyez un @ devant quelque chose dans ObjC, c'est un bon signe que cela fait partie de l'extension ObjC fait à C. @interface, @implementation, @protocol, @selector, @class, etc. @ est en quelque sorte le espace de noms informel Objective-C. C'est similaire à la façon dont tout dans Cocoa est préfixé avec 'NS' afin qu'il n'ait pas tendance à entrer en conflit avec d'autres choses qui se passent. – Ken