2015-10-14 2 views
1

https://github.com/Hearst-DD/ObjectMapper требует, чтобы у менябыстрый инициализатор необязательный и не факультативный одновременно?

required init?(_ map: Map){ 
} 

Я хотел бы создать экземпляр Foo() но это Foo? тип не Foo.

Я добавил следующий инициализатор, но безрезультатно.

override init() { 
} 
+0

Вы пытались использовать удобство init вместо переопределения существующего? – Brduca

ответ

0

** редактировать ** Извините за ложный вызов ..

У меня была проблема с ниже код.

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

и кажется, работает.

1

Возьмите Foo ?, проверьте, имеет ли оно значение, а затем разверните его.

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

Или еще проще:

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