My code (fragment below) causes the Simulator to Hang. What am I doing wrong?
To reproduce the problem, cut and paste into the Simulator.
class INK
{
var test = 1
}
var array = [INK!](repeating: nil, count: 1)
for idx in 0..<array.count
{
array[idx] = INK()
}
var idx2 = 0
for ink_item in array
{
idx2 += 1
print("idx2=\(idx2)")
}
This is a known bug, see SR-1635. Since an IUO is no longer a distinct type, it shouldn't really be possible to have an array of them in the first place.
This is confirmed by the fact that the following code fails to compile:
(note I renamed your class name to
Ink
to conform to Swift naming conventions)Depending on your situation, you may want to consider using a
lazy
property instead:Or making the array itself an implicitly unwrapped optional (and defer both the allocation and initialisation of the array):
Although note that IUOs should always be a last resort due to their inherent unsafety.