无法为AnyObject类型调用初始化程序?没有参数
我在我的Xcode项目中创建了一个变量。无法为AnyObject类型调用初始化程序?没有参数
var user = AnyObject?()
这行代码作为错误返回。错误消息说
无法为类型'AnyObject?'调用初始值设定项?没有论据
为什么我收到这个错误,我该如何解决它?
在Swift 2中,'Optional'确实有一个'init()',它创建了一个设置为'.None'的新实例 - 但是在Swift 3中,this初始化程序已被删除。相当于简单的'var user:AnyObject?' - 虽然这是所有[在我提出的愚人问答中提到](http://stackoverflow.com/questions/39549717/what-happened-to-the-uiview-constructor-在-迅速-3-0)。 – Hamish
如果你真的试图定义AnyObject?
类型的变量,你想放的空Optional<AnyObject>
里面,你可以简单地写
var user: AnyObject? = .none
或由@Hamish
建议var user: AnyObject?
(Mutable)optionals默认值为'.none' :) – Hamish
@Hamish:谢谢! –
'AnyObject'是一个协议。你不能创建一个'AnyObject'的实例。 – rmaddy
@rmaddy但'AnyObject?'* *是一个具体类型(即'Optional'),您可以创建一个实例;)(不再使用'init()',因为OP在此尝试执行) –
Hamish
'var user = AnyObject?.self as Any ... ... –