在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文档中的官方答案,但我找不到一个。
答案 0 :(得分:7)
该方法确实称为application
,但didFinishLaunchingWithOptions
是外部参数名称,并且:
如果为参数提供外部参数名称,则在调用该函数时必须始终使用该外部名称。
由于可以有两个名为application
的函数,它们具有不同的外部参数名称,因此在引用函数时我们总是必须指定外部参数。因此,函数/方法的全名将是
application(_:didFinishLaunchingWithOptions:)
你是对的,还没有任何约定用于引用Swift函数。现在引用函数最安全的方法是使用Obj-C约定。
application:didFinishLaunchingWithOptions:
仍在所有Apple文档链接中使用。
此约定在整个Apple文档中使用。
答案 1 :(得分:1)
该方法确实是“只是”application
如果您有tableview
例如,几乎所有函数都以tableview
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)
两种语言的命名完全相同。
如果您想要一个好的证明,请尝试在选择器中使用任何其他命名。