2

今日はObjective-C++名前空間をいじっていました。

Handle、Size、DurationはすでにObjC++で定義されていることがわかりました。それらは何であると定義され、どこで定義されていますか?

私は#importedFoundation/Foundation.hしか持っていません

4

2 に答える 2

6

MacTypes.h

typedef char *                          Ptr;
typedef Ptr *                           Handle;
typedef long                            Size;
typedef SInt32                          Duration;

これらはすべてCarbonよりも前のものです。名前空間がいっぱいになっても、Cocoaとは何の関係もありません。

于 2010-05-18T03:41:14.050 に答える
2

コマンドキーを押しながらXcodeのシンボルをダブルクリックして、シンボルが定義されている場所を確認するか、[すばやく開く](Command-Shift-D)を使用してシンボル名を入力します。 HandleSizeおよびDurationは、たとえばCoreServicesフレームワークにあります。

競合を避けるために、グローバルObjective-C名には常に一意のプレフィックス(通常はイニシャルまたはプロジェクト名の短縮バージョン)を使用する必要があります。いくつかのObjective-Cスタイルガイドにリンクしているこの質問への回答を見てください。

于 2010-05-18T03:25:09.423 に答える