2016-11-13 23 views
0

我在我的Xcode项目中创建了一个变量。无法为AnyObject类型调用初始化程序?没有参数

var user = AnyObject?() 

这行代码作为错误返回。错误消息说

无法为类型'AnyObject?'调用初始值设定项?没有论据

为什么我收到这个错误,我该如何解决它?

+1

'AnyObject'是一个协议。你不能创建一个'AnyObject'的实例。 – rmaddy

+0

@rmaddy但'AnyObject?'* *是一个具体类型(即'Optional '),您可以创建一个实例;)(不再使用'init()',因为OP在此尝试执行) – Hamish

+0

'var user = AnyObject?.self as Any ... ... –

回答

0

你写什么是等价的:

var user = Optional<AnyObject>.init() 

Optional没有一个init()初始化。你想做什么?

+1

在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

0

如果你真的试图定义AnyObject?类型的变量,你想放的Optional<AnyObject>里面,你可以简单地写

var user: AnyObject? = .none 

或由@Hamish

建议
var user: AnyObject? 
+1

(Mutable)optionals默认值为'.none' :) – Hamish

+0

@Hamish:谢谢! –

相关问题