swift函数定义语法

时间:2015-11-16 00:14:31

标签: ios swift

我试图理解'didFinishPickingMediaWithInfo'在以下swift函数定义中的含义。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
}

我看到'info'表示字典集合类型,但我不明白为什么它前面有'didFinishPickingMediaWithInfo'。 我是swift和iOS开发的新手一般请帮忙回答一些琐碎的问题。 谢谢

2 个答案:

答案 0 :(得分:1)

来自documentation

  

修改方法的外部参数名称行为

     

有时为a提供外部参数名称很有用   方法的第一个参数,即使这不是默认值   行为。为此,您可以自己添加明确的外部名称。

     

相反,如果您不想为其提供外部名称   方法的第二个或后续参数,覆盖默认值   通过使用下划线字符(_)作为显式外部的行为   该参数的参数名称。

这意味着在您的方法中,单词didFinishPickingMediaWithInfo是调用方法时使用的变量名。但是,您可以从info变量中获取数据。例如,在您的情况下,该方法将被称为imagePickerController(picker: <UIImagePickerController>, didFinishPickingMediaWithInfo: <info>),因为didFinishPickingMediaWithInfo会替换info

希望有所帮助!

答案 1 :(得分:1)

这允许您为更详细的版本提供参数排序别名。因此,您不必使用didFinishPickingMediaWithInfo作为变量进行操作,而只需使用名为info的本地参数(或别名)。

  

指定外部参数名称

     

在本地参数名称之前编写外部参数名称   它支持,由空格分隔:

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/mac/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html#//apple_ref/doc/uid/TP40014097-CH10-ID167