2017-12-20 10 views
-4

私のプログラムでエラーが発生しました。このエラーを解決する方法を教えてください。プロパティ 'self.delegate'がsuper.initで初期化されていません

エラーが発生します:プロパティ 'self.delegate' でsuper.init コール

override init(reuseIdentifier: String?) 
    { 
     super.init(reuseIdentifier: reuseIdentifier) 

     self.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(selectHeaderAction(gestureRecognizer:))) 
    } 
私は実際にこのエラーを解決する方法を知らない

で初期化されていません?

答えて

0

これはすでにhereと回答しています。しかし、それをもう一度繰り返すだけで、変数がオプションとして宣言されていない場合は、init関数の実行後にnilでなくてはなりません。そうしないとエラーが発生します。上記の投稿のように、オプションで宣言する方がよいでしょう。

更新:

コードの関連部分を含むコメントに記載されています。デリゲートは、このように宣言する必要があります:オプションの変数がnilできるため、エラーが消えます

weak var delegate: YourDelegateProtocol? 

あなたがそれをアンラップする必要があるまでは、それとは問題ありません。

+3

質問があり、その前に回答があった場合は、重複としてフラグを立てることができます。* –

+0

Ok。ありがとう、私は次回知っているよ。今回は既にマークされています。 –

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 18310852) –

関連する問題