在Swift中调用定义的func时出现奇怪的xcode错误

时间:2014-06-24 03:33:00

标签: ios xcode swift

我在正在创建的新项目中的.swift文件中定义了以下函数:

func createCircle(xPos: Int, yPos: Int) {
    // do code here
}

出于某种原因,当我尝试使用以下代码调用它时,xcode显示错误,指出“缺少参数标签'yPos:'在调用中”。

createCircle(100, 100)

奇怪的是它将yPos视为与xPos不同 - 如果我包含xPos:在调用函数中它会突出显示该行并说“无法将表达式的类型'$ Tf'转换为'IntegerLiteralConvertable'”。因此,以下是我最终要调用上述函数的内容:

createCircle(100, yPos: 100)

我错过了一些明显的东西,还是这是一个xcode beta bug?

1 个答案:

答案 0 :(得分:0)

根据Swift文档

部分 - 方法 - 方法的本地和外部参数名称

  

“具体来说,Swift在方法a中给出了第一个参数名称   默认情况下为本地参数名称,并给出第二个和后续参数   默认情况下,参数名称为本地和外部参数名称。“

从您的错误判断,您似乎在使用方法而不是函数。您不需要为第一个参数提供名称,但必须为后续参数提供名称,但可以使用_(下划线字符)更改此行为。

class MyCircle {
    var xPos: Double = 0.0;
    var yPos: Double = 0.0;

    func createCircle(x: Double, _ y: Double) {
        // insert create circle logic here.
    }
}

var cir = MyCircle();
cir.createCircle(100, 100);

通过对后续参数使用下划线,您不必在调用方法时为它们提供标签。