swift 初始化程序同时可选和非可选?

swift initializer optional and non-optional at the same time?

https://github.com/Hearst-DD/ObjectMapper 要求我有

 required init?(_ map: Map){
 }

我想实例化 Foo() 但它是 Foo?输入不是 Foo.

我添加了以下初始化程序但没有用。

 override init() {
 }

获取 Foo?,检查它是否有值,然后解包。

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

或者更简单地说:

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

** 编辑 ** 对不起打错电话了..

我在使用以下代码时遇到问题。

 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()

它似乎有效。