Swift:使用空字段创建可变数组

Bad*_*Cat 2 arrays generics cocoa-touch ios swift

我想在Swift中创建一个类型UIImageView但最初应该有一些空字段(nil)作为占位符的数组.那可能吗?在Objective-C中创建很容易,例如:

[self.pageViews addObject:[NSNull null]]
Run Code Online (Sandbox Code Playgroud)

在Swift中我定义了这样的数组:

var pageViews:Array<UIImageView> = [];

override func viewDidLoad()
{
    super.viewDidLoad();

    for i in 0 ..< 5
    {
        pageViews.append(nil);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然这不起作用.如果我用数组定义数组

var pageViews:Array<UIImageView!> = [];
Run Code Online (Sandbox Code Playgroud)

我不会得到编译时错误,但应用程序抛出致命错误:

致命错误:尝试桥接包含nil的隐式解包的可选项

这个问题有什么好的解决方法吗?

dre*_*wag 9

如果希望能够存储nil在数组中,则必须将其类型定义为存储Optional值.count:repeatedValue:为方便起见,您还可以使用初始化程序:

var pageViews = [UIImageView?](count: 5, repeatedValue: nil)
Run Code Online (Sandbox Code Playgroud)