调用中的无关参数标签“ at:”

时间:2019-09-20 04:15:18

标签: swift

当我在ViewController中定义方法时,Xcode报告参数标签错误。

func badMethod() {
    let array = NSMutableArray()

    for i in 0..<10 {
        array.insert(i, at: i)
    }

    for _ in 0...10 {
        array.remove(at: 0)  // <- Extraneous argument label 'at:' in call
    }
}

如果有与其兼容的方法,则不应在早期的swift版本中报告此错误。

2 个答案:

答案 0 :(得分:2)

您使用的是NSMutableArray,因此调用该方法的正确方法是array.removeObject(at: 0)。另外,您将删除11个元素,但仅添加10个。

也就是说,这是Swift,您应该使用本机数组:

func betterMethod() {
    var array = [Int]()

    for i in 0..<10 {
        array.insert(i, at: i)
    }

    for _ in 0..<10 {
        array.remove(at: 0)
    }
}

答案 1 :(得分:-3)

您可以尝试像他一样争吵

func badMethod() {
    let array = NSMutableArray()

    for i in 0..<10 {
        array.insert(i, at: i)
    }

    for _ in 0...10 {
        array.remove(0)  // <- Extraneous argument label 'at:' in call
    }
}