2010-12-15 134 views
9

我一直在使用Objective-C一段時間,但從未真正理解@符號在所有字符串之前的用途是什麼。舉例來說,你爲什麼要聲明一個字符串是這樣的:字符串之前@符號的用途?

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

,而不是像這樣:

NSString *anotherString = "This is another string"; 

如您在Java或許多其他編程語言做。有沒有很好的理由?

+3

請參閱[@符號在objective-c中代表什麼? ](http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c)。 – 2010-12-15 03:00:29

+0

這很有道理。謝謝! – Jumhyn 2010-12-15 03:03:57

回答

12

它表示的NSString(而不是標準的C字符串)

一個NSString是存儲Unicode字符串,並提供了一堆方法來輔助操作對象。

C字符串只是一個以\ 0結尾的字符串(字節)。

編輯:好的原因是Objective-C建立在C之上,C語言構造需要仍然可用。 @「」是一個僅用於Objective-C的擴展。

+0

我現在明白了。謝謝! – Jumhyn 2010-12-15 03:05:06

+4

當你在ObjC中看到一個@時,這是一個好兆頭,它是ObjC對C的擴展的一部分@ @interface,@implementation,@protocol,@selector,@class等@非正式的Objective-C命名空間。這與Cocoa中的所有內容都以'NS'爲前綴,這樣它就不會與其他內容發生衝突。 – Ken 2010-12-15 04:02:04