4

ときどき Apple のソース コードを閲覧して、プロがどのようにそれを行っているかを確認したり、1 つまたは 2 つのことを学んだりします。私は今、 のヘッダー ファイルNSManagedObjectContext.hと、そのグローバル変数、たとえばのヘッダー ファイルを見ていますNSManagedObjectContextDidSaveNotification

COREDATA_EXTERN NSString * const NSManagedObjectContextDidSaveNotification;

通常は次のようになります。

extern NSString * const NSManagedObjectContextDidSaveNotification

COREDATA_EXTERN を Cmd + クリックすると、その定義が表示されます。

#define COREDATA_EXTERN     extern

だからCOREDATA_EXTERNに等しいexternので、私の質問は、なぜ彼らは単に使用しないのexternですか?

4

1 に答える 1

3

CoreDataDefines.h ファイルを確認すると、次のような COREDATA_EXTERN のいくつかの異なる定義が表示されます。

#ifdef __cplusplus
#define COREDATA_EXTERN     extern "C"

また:

#ifdef __cplusplus
#define COREDATA_EXTERN     extern "C" _NSWINDOWS_DLL_GOOP

これにより、一部のプラットフォーム固有の定義が可能になり、すべてが単一の定義に含まれます。

Windows グープ、それはおかしいです。私が知りたいのは、いつ Windows プラットフォームでコア データをコンパイルするのかということです....

于 2012-11-25T00:02:46.390 に答える