Implicitly unwrapped optional made immutable

swift

Solution

Update:

This has been fixed in Xcode Beta 5 with one small caveat:

var list: [Int]! = [1]
list.append(10)

var number: Int! = 1
number! += 2
number += 2 // compile error

The array works as expected, but it seems that right now the integer still requires an explicit unwrap to allow using `+=`

Currently, this is just the nature of Optionals (whether implicitly unwrapped or not). The unwrap operator returns an immutable value. This is likely to be fixed or a better solution will be provided in the future.

The only way around it for now is to wrap the array in a class:

class IntArray {
    var elements : [Int]
}

Problem

Why is it that I cannot mutate an implicitly unwrapped optional variable? Here is a short example the reproduces the issue: With Array ``` var list: [Int]! = [1] list.append(10) // Error here ``` `Immutable value of type '[Int]' only has mutating members named 'append'` With Int ``` var number: Int! = 1 number = 2 number = 2 + number number += 2 // Error here ``` `Could not find an overload for '+=' that accepts the supplied arguments`

Original source