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

时间:2014-07-30 15:22:04

标签: ios arrays cocoa-touch generics swift

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

[self.pageViews addObject:[NSNull null]]

在Swift中我像这样定义数组:

var pageViews:Array<UIImageView> = [];

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

    for i in 0 ..< 5
    {
        pageViews.append(nil);
    }
}

当然,这不起作用。如果我用

定义数组
var pageViews:Array<UIImageView!> = [];

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

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

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

1 个答案:

答案 0 :(得分:9)

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

var pageViews = [UIImageView?](count: 5, repeatedValue: nil)