Swift中的方法名称

时间:2015-04-05 08:13:48

标签: objective-c swift methods

在Objective-C中,我们有方法名称,如application:didFinishLaunchingWithOptions:,但在Swift中,相同工作的方法看起来不同。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    return true
}

这个方法的名称只是application,因为其他一切都只是参数吗?或者它被称为application didFinishLaunchingWithOptions,名称中有空格? 我正在寻找Apple文档中的官方答案,但我找不到一个。

4 个答案:

答案 0 :(得分:7)

该方法确实称为application,但didFinishLaunchingWithOptions是外部参数名称,并且:

  

如果为参数提供外部参数名称,则在调用该函数时必须始终使用该外部名称。

由于可以有两个名为application的函数,它们具有不同的外部参数名称,因此在引用函数时我们总是必须指定外部参数。因此,函数/方法的全名将是

application(_:didFinishLaunchingWithOptions:)

你是对的,还没有任何约定用于引用Swift函数。现在引用函数最安全的方法是使用Obj-C约定。

application:didFinishLaunchingWithOptions:

仍在所有Apple文档链接中使用。

此约定在整个Apple文档中使用。

答案 1 :(得分:1)

该方法确实是“只是”application 如果您有tableview例如,几乎所有函数都以tableview

开头,那么Swift会更频繁地使用它
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {}

参数“定义”函数而不是方法。

答案 2 :(得分:0)

你的意思是什么,它的名字在文件中?它是application(_:didFinishLaunchingWithOptions:)我无法想象你需要手动调用的情况,但以防万一:

    application(app, didFinishLaunchingWithOptions:aDictionary) 

答案 3 :(得分:0)

两种语言的命名完全相同。

如果您想要一个好的证明,请尝试在选择器中使用任何其他命名。