我想在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的隐式展开的可选
这个问题有什么好的解决方法吗?
答案 0 :(得分:9)
如果您希望能够在数组中存储nil
,则必须将其类型定义为存储Optional值。为方便起见,您还可以使用count:repeatedValue:
初始化程序:
var pageViews = [UIImageView?](count: 5, repeatedValue: nil)