Swift中的方法名称

Tal*_*ode 5 methods objective-c swift

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

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

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

Sul*_*han 7

确实调用了该方法application,但是它didFinishLaunchingWithOptions是一个外部参数名称,并且:

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

由于可以application使用不同的外部参数名称调用两个函数,因此在引用函数时我们总是必须指定外部参数.所以,函数/方法的全称都是

application(_:didFinishLaunchingWithOptions:)
Run Code Online (Sandbox Code Playgroud)

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

application:didFinishLaunchingWithOptions:
Run Code Online (Sandbox Code Playgroud)

这仍然在所有Apple文档链接中使用.

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

  • 这是最好的答案,涵盖所有问题和有趣的观点(除了文档通过Objective-C版本明确指出它们):http://i.imgur.com/QVcdcRB.png(顶部有一个小盒子)选择"Objective-C","Swift"或"Both"的文档.如果你把它放在Swift上,Swift风格会像这样出现. (2认同)