2015-02-23 44 views
2

最近我來了accros Swift,但有一些我不明白。我想用單元實現一個tableView。我明白,但這個符號對我來說有點混亂。瞭解函數中的Swift參數符號如tableView

我從UITableViewDataSource

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 5 
    } 

這個功能你能告訴我什麼是numberOfRowsInSection?這是他的參數部分的功能嗎?我看到函數tableView的名稱返回一個Int,參數tableView和它們自己的類型。但我真的不明白它爲numberOfRowsInSection。

而當這個函數被調用?

感謝您的回答。

回答

3

差異是內部外部參數標籤。您可以使用兩種不同類型的參數標籤。內部用於函數內部,當您調用函數時使用外部函數。

tableView(tableView: UITableView, numberOfRowsInSection section: Int) 
       /\       /\    /\ 
       ||       ||    || 
      internal      external  internal 

讓我們舉個例子功能:

func test(str:String, thisIsATest str1:String){ 
    println(str1)//works 
    println(thisIsATest)//error 
} 

就像你看到的,我打印str1值。但是你會看到,它只會與內部論證一起工作。

但如果你現在所說的功能從外面那樣:

test("hi", str1:"hi2") 

它拋出一個錯誤。因爲您使用了internal參數標籤。 但如果你現在使用的外部參數標籤thisIsATest,它的工作原理:

test("hi", thisIsATest:"hi2") 

你也不必在所有設置外部的標籤,但如果你設置的外部標籤,還必須設置一個內部標籤爲了它。但是在某些情況下,您必須設置內部標籤,如init()方法。

即使容易提醒,我也爲自己做了一個小馬:我將一個功能與一家公司比較:如果您在公司工作,並且想打電話給在公司工作的某人,您會使用內部電話號碼。但是,如果您想將公司服務用作客戶(功能用戶),則可撥打外部號碼。

+0

謝謝克里斯蒂安,這很清楚。這基本上是蘋果公司的命名慣例,開發者可以看到該功能最終會做什麼?我們知道函數何時被調用嗎?還是被蘋果隱藏了? – Gregor 2015-02-23 17:15:00

+0

對於「我們知道函數何時被調用」的含義是什麼?那麼這與該方法的命名方式無關。 – Christian 2015-02-23 17:26:43