swiftで[weak self]をguardするときの書き方ってどうするのが良いのだろう?
[Swiftを書き始めたときに悩んだことシリーズ]
今年の始めから本格的にiOSアプリを作り始めて、「swiftで[weak self]をguardするときの書き方ってどうするのが良いのだろう?`」って思いました。
調べたり、人に聞いたりすると以下のパターンがありました。(他にもあると思いますけど)
書き方①
guard let `self` = self else { return }
書き方②
guard let me = self else { return }
書き方③
guard let wSelf = self else { return }
書き方④
guard let strongSelf = self else { return }
自分は、書き方①を使っています。
理由
- 別の変数名をつけたくない
- シンタックスハイライトを有効にするため
エウレカのコーディング規約でも `self` にしているようです。
ただし、これはバグという情報も見つけました。。。
バッククオートでselfに代入できるのはおそらくバグだとアップルの人の回答。その上でこの提案が受け入れられたら、普通にselfにguard節で代入できるようになる。 https://t.co/MVT7iEO5Pu https://t.co/MGYfn6YcHB
— kishikawa katsumi (@k_katsumi) 2016年1月20日
WWDC2017でAppleのエンジニアに知り合いが聞いたら、`self`でも問題ないということを言っていたので、大丈夫かなと思っています。