2016-05-14 40 views
2

我想知道是否有可能創建Objective-C文字,如NSString,而不是[[Object alloc] init],然後指定您可以爲其分配值,如@"A string"創建Objective-C文字對象,如NSString

很明顯NSString是一個對象,因爲它具有操作數據的方法,所以理論上應該有一種方法可以自己做,但我不確定哪裏可以找到像這樣的東西。

+0

問題還不清楚。NSInteger是一個原始類型(它是long int或類似的typedef)。 ;它是一個對象,你想要做什麼? – matt

+0

「你可以給它分配一個值」但是你會指定什麼值? – matt

回答

2

Objective-C是C.原始(我稱之爲標量爲)數據類型都是數字,並且完全由語言定義;不能添加到它們(雖然可以使用typedef重命名它們,相應的文本,如1"hello",也都是C.

的一部分

類似地,文本等@"howdy"@[@"howdy"],雖然通過Objective-C的,而不是限定C語言是語言的一部分,你不能改變或添加它們,因爲字面語法是內置在語言中的。

+0

你所描述的東西就是可以在Swift中使用,但是你可以在其中創建一個符合其中一個內置'Literal'協議的類型,從而在需要該類型對象的地方使用文字。有關示例,請參閱http://www.apeth.com/swiftBook/ch04.html#_literal_convertibles。這可能是Swift切換的原因(或者至少試一試)。 – matt

+0

我認爲你誤解了這個問題。我不想改變文字格式的形式或類似的東西,我想要一個對象能夠被賦予一個基本類型,如int,字符串或數組,如果可能的話定義如MyNewClass * class = @「你好」或類似的東西 – SonarSoundProgramming

+3

我想你誤解了答案。我告訴你,你不能這麼做,因爲'@「Hello」'_is_是一個字符串字面值,並且不能到達MyNewClass所在的位置。但是你可以在Swift中做這樣的事情。在那裏,你讓我說我的答案兩次,做得很好。 :) – matt