web-dev-qa-db-ja.com

ObjectiveC-定数がkで始まるのはなぜですか

私が見たすべての例の定数が常にkで始まるのはなぜですか?そして、ヘッダーまたは.mファイルで定数を#defineする必要がありますか?

私はObjectiveCを初めて使用しますが、Cを知りません。Cの知識を前提とせずに、この種のことを説明するチュートリアルがどこかにありますか?

43
mk12

定数を「k」で始めることは、Mac OSX以前の時代の遺産です。実際、Mac OSが主にPascalで書かれていて、主な開発言語がPascalだった当時、この慣習はwayから来ているのではないかと思います。 Cでは、#define'd定数は通常、接頭辞「k」ではなく、すべて大文字で記述されます。

定数を#defineする場所について:#defineそれらを使用する場所。コードを#importする人が定数を使用することを期待する場合は、それらをヘッダーファイルに入れてください。定数が内部でのみ使用される場合は、それらを.mファイルに入れます。

38
mipadi

Appleからの現在の推奨事項 for 名前付け定数 「k」プレフィックスは含まれていませんが、多くの組織がその規則を採用し、今でも使用しているため、まだかなり多く見られます。

9
Caleb

「k」が何を意味するのかという質問に答えます この質問では

また、その特定の.m以外のファイルでこれらの定数を使用する場合は、.mファイルをインポートできないため、定数をヘッダーに配置する必要があります。

Cocoa Dev Centralの Cocoaプログラマー向けのCチュートリアル に興味があるかもしれません。それは多くのコアコンセプトを説明しています。

8
Chuck

「慣習」を表すk。真剣に;それは単なる慣習です。

#defineはどこにでも置くことができます。ヘッダー、上部の.m、使用場所のすぐ隣の.mにあります。それを使用するコードの前に置くだけです。

Xcodeツールスイートで提供される「Objective-cの概要」ドキュメントは、実際には非常に優れています。数回読んでください(2〜5年に1回読み直したいです)。

しかし、それも私が知っているCの本も、これらの特定の質問に答えることはできません。答えは、経験を通して明らかになります。

3
bbum

以前はハンガリアン記法が普及していたためだと思います。そのため、cは文字を表すためにkが選択されました。 ( http://en.wikipedia.org/wiki/Hungarian_notation

-アラン

1
Alan