swift初始化器可选和非可选同时?
问题描述:
https://github.com/Hearst-DD/ObjectMapper要求我有swift初始化器可选和非可选同时?
required init?(_ map: Map){
}
我想实例Foo()
但它是富?键入不是Foo。
我添加了以下初始化程序,但无济于事。
override init() {
}
答
**编辑** 对不起,误报..
我有问题,下面的代码。
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 {
// ...
}
您是否尝试过使用便利的init而不是重写现有的? – Brduca