2016-04-18 84 views
0

當我試圖實現協議之一時,我遇到以下語法。Swift編程語言的語法

optional public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) 

任何人都可以解釋「didFinishWithResult」的含義嗎?這是一個爭論嗎?如果不是什麼?

回答

6

didFinishWithResult是外部參數名稱。 result是內部的。所以,當你調用這個方法的時候,就會使用外部的方法,並且在方法中使用內部的方法。

+1

這可以讓你有_one_名字是有道理的函數的調用者,以及在實現函數時有意義的另一個名稱。 – gnasher729

1

在目標C的方法被定義和參數名稱如下:

- (void)mailComposeController:(MFMailComposeViewController *)controller 
     didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 

當翻譯成迅速可以聲明外部和內部參數

功能參數有兩個外部參數名稱和本地參數名稱。外部參數名稱用於標記傳遞給函數調用的參數。在該函數的實現中使用本地參數名稱。

默認情況下,第一個參數省略其外部名稱,第二個和後續參數將其本地名稱用作其外部名稱。所有參數必須具有唯一的本地名稱。儘管多個參數可能具有相同的外部名稱,但唯一的外部名稱有助於使代碼更具可讀性。

你它支持本地參數名稱前寫的外部參數的名稱,用空格分隔:

func someFunction(externalParameterName localParameterName: Int) { 
    // function body goes here, and can use localParameterName 
    // to refer to the argument value for that parameter 
} 

來源https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html