Objective-Cでレビューしたときの指摘事項メモ

  • プロパティにアクセスするときに、_hogeなのか、self.hogeなのか統一した方がよくて、readonlyのプロパティだとか、setter、getterがよく分かってないなら基本的にself.hogeでアクセスする。
  • やたらとNSLogの書き残しが多いから、ちゃんと自分が見たいログが分からなそう。一時的なNSLogは消すようにしよう。
  • buildディレクトリはコミットしない。ignoreに登録する。登録すべきでないものは、gitignore/Objective-C.gitignore at master · github/gitignore · GitHubをパクる。基本的に、その言語の正しいignoreすべきファイルはgithubにおいてあるのでそれを参考にする。
  • storyboardを使ってるときは、initWithNibName:bundle:の処理は通らない。initWithCoder:が使われる。
  • 初期化する場所として、init系には、NSArrayやフラグの初期化などビューにからまないデータ系のものを、ビューに関する初期化はviewDidLoadでやるのが正しい場所
  • 別クラスから呼び出さないメソッドはヘッダファイルで宣言しない。実装ファイル(.m)の方でも宣言する必要ない。
  • 別クラスからアクセスしないプロパティもヘッダファイルには書かない。IBOutletもヘッダで宣言は必要なくて、実装ファイルの方のクラスエクステンションで行ける。
  • IBActionもヘッダに書かなくても大丈夫。実装ファイルで宣言する必要もなくて、普通に、メソッドの返り値のところにIBActionを入れておけば、Interface Builderから認識される。
  • 真偽値の書き方がTRUEとかYESとかぶれてる。YES、NOに統一する。
  • to doコメントの書き方は、 // TODO:と書く。そうするとメソッド一覧で見れる。(ちなみに、他には、FIXME: もある)
  • プロパティ宣言の最近の書き方は、ここにまとまってる。 Objective-C のプロパティ属性のガイドライン - Qiita
  • CLLocationに関する処理はシングルトンにして一つのクラスに閉じ込めた方がよさそう。どうせアプリケーションの生死と同じライフサイクルだと思うし。
  • #defineでNSStringは宣言しない。毎回インスタンス化されるからコストがかかってる。 static NSString const * を使う
  • 使ってないメソッドなどは名残惜しくても消した方がいい。頭が整理される。バージョン管理してるから大丈夫。
  • コミットをもっと小さい単位で行うようにする。目についたところを気になって直してるとどこまでできてて、どこまでができていないかが分からなくなる。