[PR]
2024年11月21日
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
キー値コーディングの落とし穴
2009年01月02日
キー値コーディングは一度概念を理解してしまうと、もの凄く便利です。現在製作中のアプリにおいてもそれこそ湯水のごとく多量に使っています。まあ、概念を理解して使いこなせるようになるまでが結構大変なんですけどね。そして厄介なことに、私にとってはデバックで問題の発見がしにくい原因となるものでもあります。理由はとても簡単です。キー値の部分はコードの中では単なる文字列なので、Xcodeの補完入力が行われません。そのため、キー値のスペルミスは全くチェックされないからです。
@"key"と書くべきところが@"Key"となっていても、その逆の場合でも、当たり前ですがXcodeは何も言ってくれません。自分が打ち間違いやら思い込み違いやら、その他諸々をしなければ良いだけなんですが、キーの値を英語にすると、複数形にしてsを付けたかどうかや大文字で始めたかそれとも小文字で始めたかなど、後から迷ったりします。そうすると存在するはずの値が拾われないなどという、とても発見が難しいバグが起きたりします。一文字違うだけでも違う値になるのは当たり前で、そうでなければ困るのですけどね。というわけで皆様、キーの値は確実に一貫性を持たせましょう。
@"key"と書くべきところが@"Key"となっていても、その逆の場合でも、当たり前ですがXcodeは何も言ってくれません。自分が打ち間違いやら思い込み違いやら、その他諸々をしなければ良いだけなんですが、キーの値を英語にすると、複数形にしてsを付けたかどうかや大文字で始めたかそれとも小文字で始めたかなど、後から迷ったりします。そうすると存在するはずの値が拾われないなどという、とても発見が難しいバグが起きたりします。一文字違うだけでも違う値になるのは当たり前で、そうでなければ困るのですけどね。というわけで皆様、キーの値は確実に一貫性を持たせましょう。
PR
たしかヒレガス本に書いてありましたが、キー値は、Cプリプロセッサで#define KEY @"key"のように書いてKEYを使うようにするとか、グローバル変数とか使うとコード補完が使えて間違いが無くなると思います。