【发布时间】:2014-07-30 15:22:03
【问题描述】:
我想在 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 的隐式展开的可选项
这个问题有什么好的解决方法吗?
【问题讨论】:
-
在这个
Array<UIImageView!>,这里的感叹号到底是做什么的? -
将 UIImageView 定义为可选。
-
@holex:
UIImageView!是UIImageView的隐式解包选项 -
最新的测试版无法重现这一点
标签: ios arrays cocoa-touch generics swift