在数组中将可选项分配给nil

时间:2015-07-21 13:42:42

标签: arrays swift sprite-kit

我正在尝试创建一个获取CGPoint选项数组的方法,并将它们分配给nil。我收到错误“无法将类型为nil的值分配给CGPoint类型的值?”。我很困惑,因为我认为选项可能是nil或某种类型的指定对象。谢谢你的帮助(:

func resetArray(arr: [CGPoint?])
{
        for index in 0...arr.count-1
        {
            arr[index] = nil
        }
}

1 个答案:

答案 0 :(得分:1)

将参数传递给函数时,它是不可变的,因此不允许更改它。对于数组,作为值类型,这意味着您不能使用任何mutating方法或以其他方式执行任何更改值的操作。

您可以通过在inout修饰符前面加上参数来使参数可写:

func resetArray(inout arr: [CGPoint?])
                ^^^^^

注意,在调用函数时,必须通过在&&符号前加上前缀来传递参数:

var array = [...]
resetArray(&array)
           ^

您还可以创建一个可修改的参数,但只能在函数体内看到更改(这意味着在传递给函数的原始参数的副本上会发生更改) - 这可以通过使用{{1修饰符:

var