将我的应用程序转换为新的Swift - 错误“调用中的额外参数”

时间:2017-06-30 00:13:23

标签: ios arrays swift dictionary

我最近将我的手表应用程序转换为Swift 4,并收到以下错误:“调用中的额外参数'var2'”。 代码在带有数组/字典的Singleton中,这里是参考代码:

class foo {

    static let sharedInstance = foo()

    var currentFlag: Bool = true
    var a:[(var1: Int, var2:Int, var3:Bool)] = []

    private init() {
    }

    func test(v1:Int, v2:Int) {
        a.append(var1: v1, var2: v2, var3: Bool(currentFlag)) // <-- error here 
    } 
}

1 个答案:

答案 0 :(得分:1)

检查Swift 4的此提案: SE-0110 Distinguish between single-tuple and multiple-argument function types

某些实施细节在测试版中已经改变,但在您的情况下,您需要添加另一对括号:

currentFlag

顺便说一下,您将Bool声明为Bool(currentFlag),因此func test(v1:Int, v2:Int) { a.append((var1: v1, var2: v2, var3: currentFlag)) } 有点多余:

{{1}}