2017-12-17 15 views
0

私はinitializeメソッドを持っています。 & &または||を使用した場合、のすべてのメンバーが初期化される前に、閉鎖によって'自己'がキャプチャされるのはなぜですかオペランド。&&、||でクロージャーエラーによって 'self'がキャプチャされました。オペレータ

var type:Type? = .non 

init(dictionary:[String:AnyObject]){ 

    if let type = dictionary["type"] as? Int { 
     self.type = Type.init(rawValue: type)! 
    } 


    //'self' captured by a closure before all members were initialized 

    if self.type == .picture || self.type == .textWithPicture { 
    //........ 
    }  
} 
+0

クラス宣言全体を提供できますか?メソッドを省略するだけです。 – mownier

+0

ifステートメントを渡さないかもしれないので、 – CZ54

答えて

3

NSObjectからクラスを継承していますか?はいの場合、このクラスのプロパティを使用する前にsuperのinitメソッドを呼び出す必要があります。

+0

はいメイト、それを得ました。私はそれを知らなかった。ありがとう! https://stackoverflow.com/questions/25630031/calling-super-init-in-initializer-of-nsobject-subclass-in-swift –

関連する問題