我的代码在升级到beta 4之前编译得很好,但我认为他们用IBOutlets改变了一些东西。
旧语法是:
@IBOutlet var tableView: UITableView
新语法是:
@IBOutlet weak var tableView: UITableView!
当我从我的xib文件拖动到类文件时,这是Xcode生成的默认代码。
然而,使用这种新语法,我无法构建我的类的实例。请看以下示例:
class TestViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
}
然后,如果我尝试做任何一次
var controller = TestViewController(nibName: nil, bundle: nil)
或
var controller = TestViewController()
我收到错误:
TestViewController不能与()
构造
然后创建控制器实例的正确方法是什么?目前对我有用的唯一方法是使插座可选,但我宁愿不这样做。
答案 0 :(得分:1)
你能试试吗?
@IBOutlet var tableView: UITableView?
我知道这不是答案,但在此之后错误消失了。
答案 1 :(得分:0)
解决方案似乎是在该视图控制器中实现init方法:
init()
{
super.init(nibName: nil, bundle: nil)
}
我不确定为什么会这样。