在什么情况下,我应该在swift中使用u作为参数
我是新来的苹果雨燕。我正试图建立一个演示应用程序基于此。我发现该应用程序不工作。经过几次尝试并失败后,我发现如果我更改代码行:在什么情况下,我应该在swift中使用u作为参数,swift,uitextfield,swift3,uitextfielddelegate,Swift,Uitextfield,Swift3,Uitextfielddelegate,我是新来的苹果雨燕。我正试图建立一个演示应用程序基于此。我发现该应用程序不工作。经过几次尝试并失败后,我发现如果我更改代码行: func textFieldDidEndEditing(textField: UITextField) { 到 我能够正确运行代码 我想知道添加u作为参数之一会发生什么。这两种方法都不会导致编译错误。但第一条确实给出了如下警告: ViewController.swift:35:10: Instance method 'textFieldDidEndEditing(te
func textFieldDidEndEditing(textField: UITextField) {
到
我能够正确运行代码
我想知道添加u作为参数之一会发生什么。这两种方法都不会导致编译错误。但第一条确实给出了如下警告:
ViewController.swift:35:10: Instance method 'textFieldDidEndEditing(textField:)'
nearly matches optional requirement 'textFieldDidEndEditing' of protocol 'UITextFieldDelegate'
由于第一个是由苹果教程给出的,我不确定这是否是一个错误。有人能澄清我的疑问吗?我想你正在使用Swift 3.0。您正在学习的教程可能是Swift 2.2或Swift 2.3版本。这只是我所观察到的语法变化。即使我昨天更新到Xcode 8.0时也遇到了这种情况。如果您想要多个没有外部名称的参数,则必须使用“u”下划线字符作为其外部名称:来自Swift 3的第一个参数标签也是初始化器的标准 Swift 3演进 第一个参数声明将与第二个和以后的参数的现有行为相匹配。所有参数,无论其位置如何,都将保持一致。这将在整个Swift编程语言中创建一种简单、一致的参数声明方法,并使方法和函数声明与已使用此标准的初始值设定项同步 比如说
func foo(x: Int, y: Int)
将声明foo(x:y:)
而不是foo(:,y:)
现有的外部标签替代将继续应用于第一个参数。您可以在外部参数名称之前建立其支持的本地参数名称,并用空格分隔。比如说,
func foo(xx x: Int, yy y: Int) //declares foo(xx:yy:) and
func foo(_ x: Int, y: Int) //explicitly declares foo(_:y:)
阅读更多关于中第一个参数的信息,我使用的是最新版本的Xcode,您可以在此处找到正确答案:
func foo(xx x: Int, yy y: Int) //declares foo(xx:yy:) and
func foo(_ x: Int, y: Int) //explicitly declares foo(_:y:)