最近、自分でobjective-cをちょこちょこ書いていて、API作る側もちょっと気をつけた方がいいなーと思ったことがありました。
それは、プロパティ名です。
1. "id"を使わない
objective-cにはid型があるので、プロパティ名でそのままidを使うとまぁややこしくなるから、APIで渡してあげる時もxxxIdにしてあげると、スッキリします。
2. "newXXX"を使わない
なんか、newXXXという変数を定義するとビルドすらできなくなってしまいます。
property's synthesized getter follows Cocoa naming convention for returning 'owned' objects
こんなエラーが出ます。
ここらへんに書いてありました。
http://stackoverflow.com/questions/6327448/semantic-issue-propertys-synthesized-getter-follows-cocoa-naming-convention-fo
- new
- alloc
- copy
- mutableCopy
これらを変数名の頭につけたらダメみたいです。
new以外は使ったこともないので、気にしなくてもいいと思いますが、newはたまに使うこともあったので、その度にiOS側は悩まされていたと思うと心が痛いです。
3. "description"を使わない
これは、iOSエンジニアに聞いたのですが、descriptionも煙たがられるみたいです。
descriptionなんて使わないことの方が少ないんじゃないか、ってぐらいしょっちゅうつけてました。
が、なんとNSObjectがデフォルトでdescriptionってメソッドを持っているとのこと!
http://iphone-tora.sakura.ne.jp/nsobject.html
toStringみたいな位置づけみたいです。
もっと早く教えてよ!!!!
まとめ
これらを気をつけると、iOSエンジニアがmodelオブジェクトとかを作る時に悩む必要が無くなるので、iOSエンジニアにモテること間違いありません。