当我试图实现其中一个协议时,我遇到了以下语法。
optional public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?)
有人能解释一下"didFinishWithResult"的含义吗?这是一场争论吗?如果不是,那是什么?
didFinishWithResult
是外部参数名称。result
是内部的。因此,当您调用该方法时,将使用外部方法,而在该方法中使用内部方法。
在目标C中,方法定义如下,参数名称如下:
- (void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
当你把它翻译成swift时,你可以声明外部和内部参数
函数参数既有外部参数名称,也有本地参数名称。外部参数名称用于标记传递给函数调用的参数。在函数的实现中使用了本地参数名称。
默认情况下,第一个参数省略其外部名称,第二个及后续参数使用其本地名称作为外部名称。所有参数都必须具有唯一的本地名称。尽管多个参数可能具有相同的外部名称,但唯一的外部名称有助于提高代码的可读性。
在它支持的本地参数名称之前写一个外部参数名称,用空格分隔:
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