swift初始化器可选和非可选同时?

问题描述:

https://github.com/Hearst-DD/ObjectMapper要求我有swift初始化器可选和非可选同时?

required init?(_ map: Map){ 
} 

我想实例Foo()但它是富?键入不是Foo。

我添加了以下初始化程序,但无济于事。

override init() { 
} 
+0

您是否尝试过使用便利的init而不是重写现有的? – Brduca

**编辑** 对不起,误报..

我有问题,下面的代码。

var foo = Mapper<Foo>().map(jsonString) 
if foo != nil { 
    return foo! 
} 

foo = Foo() 
return foo 

我认为问题是,当我宣布var foo它声明为Foo?型和foo = Foo()仍然Foo?

所以我改变了代码

var foo = Mapper<Foo>().map(jsonString) 
if foo != nil { 
    return foo! 
} 

return Foo() 

,似乎工作。

Take the Foo ?,检查它是否有一个值,然后解开它。

let ff : Foo? = Foo() 
if ff != nil { 
    let f : Foo = f! 
    // ... 
} 

或者更简单地说:

let ff = Foo() 
if let f = ff { 
    // ... 
}