我想知道是否有可能創建Objective-C文字,如NSString
,而不是[[Object alloc] init]
,然後指定您可以爲其分配值,如@"A string"
。創建Objective-C文字對象,如NSString
很明顯NSString
是一個對象,因爲它具有操作數據的方法,所以理論上應該有一種方法可以自己做,但我不確定哪裏可以找到像這樣的東西。
我想知道是否有可能創建Objective-C文字,如NSString
,而不是[[Object alloc] init]
,然後指定您可以爲其分配值,如@"A string"
。創建Objective-C文字對象,如NSString
很明顯NSString
是一個對象,因爲它具有操作數據的方法,所以理論上應該有一種方法可以自己做,但我不確定哪裏可以找到像這樣的東西。
Objective-C是C.原始(我稱之爲標量爲)數據類型都是數字,並且完全由語言定義;不能添加到它們(雖然可以使用typedef
重命名它們,相應的文本,如1
和"hello"
,也都是C.
類似地,文本等@"howdy"
和@[@"howdy"]
,雖然通過Objective-C的,而不是限定C語言是語言的一部分,你不能改變或添加它們,因爲字面語法是內置在語言中的。
你所描述的東西就是可以在Swift中使用,但是你可以在其中創建一個符合其中一個內置'Literal'協議的類型,從而在需要該類型對象的地方使用文字。有關示例,請參閱http://www.apeth.com/swiftBook/ch04.html#_literal_convertibles。這可能是Swift切換的原因(或者至少試一試)。 – matt
我認爲你誤解了這個問題。我不想改變文字格式的形式或類似的東西,我想要一個對象能夠被賦予一個基本類型,如int,字符串或數組,如果可能的話定義如MyNewClass * class = @「你好」或類似的東西 – SonarSoundProgramming
我想你誤解了答案。我告訴你,你不能這麼做,因爲'@「Hello」'_is_是一個字符串字面值,並且不能到達MyNewClass所在的位置。但是你可以在Swift中做這樣的事情。在那裏,你讓我說我的答案兩次,做得很好。 :) – matt
問題還不清楚。NSInteger是一個原始類型(它是long int或類似的typedef)。 ;它是一個對象,你想要做什麼? – matt
「你可以給它分配一個值」但是你會指定什麼值? – matt