Objective-C的方法有參數,可以和除了第一個每個PARAM有兩個名字:叫名和變量名稱,例如:Objective-C params中「call name」的用法是什麼?
-SomeMessage:(type)varName callName2:(type)varName2
那麼,有什麼用callName的?爲什麼我們需要兩個參數的名字?
Objective-C的方法有參數,可以和除了第一個每個PARAM有兩個名字:叫名和變量名稱,例如:Objective-C params中「call name」的用法是什麼?
-SomeMessage:(type)varName callName2:(type)varName2
那麼,有什麼用callName的?爲什麼我們需要兩個參數的名字?
讓我們有更好的方法,例如:
- dataForKey:(NSString *)key withEncoding:(NSString *)encoding;
第一個名字,你怎麼稱呼它,實際上是方法名稱的一部分,整個方法的名稱是:
- dataForKey:withEncoding:
(包括冒號)。
Obj-C喜歡可以像讀句子一樣閱讀的方法名稱。這在調用者的情況下很有用。在如Java或C++語言的方法將被稱爲像這樣
data = object.getData("key", "ASCII")
這是很難理解的讀者,因爲他們不知道的參數代表什麼。在Obj-C中
data = [object dataForKey:@"key" withEncoding:@"ASCII"];
很容易理解,無需查看方法聲明。
的描述,IDE會幫助我們,只要將鼠標移動到功能上,一個提示就會顯示出來。 – lovespring
@lovespring當你試圖理解代碼時,這仍然會讓你放慢速度。 – Sulthan
我們可以使用命名參數按照自由度順序嗎?在C++/java中,我們必須遵循函數聲明的順序。 – lovespring
這是它的工作原理你寫的是正確的「Somemessage」和「callName2」是方法名稱的一部分,而varName和varName2是變量。
callname2是可選的,通常它被使用,如果我們想給因爲我們是
希望這有助於你以後寫變量的任何定義。
我說的實際上它是參數 – Mini
它使你的代碼更易讀,每個「呼名」是一個參數的說明
因此而不是C風格爲myMethod(5, 4, 9, 2)
你會[self myMethodWithParam:5 andACoolNumber:4 thisShouldBeNine:9 divisor:2];
它只是幫助你瞭解函數參數需要什麼,它的可選,但你應該始終這樣做,以幫助代碼維護性
emmm ...那些不是_two_名稱,這是一個方法的接口,在你的例子中方法的頭部是'-SomeMessage:callName2:',varName和'varName2'是方法範圍內的局部變量名稱。請參閱更多關於該語言的基礎知識:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html#//apple_ref/doc/uid/TP40011210-CH4-SW1 – holex