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