5

プライベートインスタンス変数を宣言する場所とその理由についてのconvention/rule / Preferences / diktatとは何ですか?

// someClass.h

@interface someClass : NSObject {
@private
// Here in the class declaration?
}
// ...
@end

// someClass.m

@interface someClass () {
// Here in the class extension? This seems to be obj-c's version
// of the C++ Pimpl idiom.
}
@end

@implementation someClass {
// Here in the class definition? BTW, what's the default scope here?
// Seems like it should be @private. I haven't been able to find much
// documentation about this declaration block.
}
// ...
@end

誰かがこれらの3つのセクションの適切な使用についてコメントしたり、これに関する優れたWebリソースを指摘したりできますか?ありがとう!

4

1 に答える 1

4

今日では、それらを@implementationまたは(非公開)クラス拡張に配置することがベストプラクティスです。

Ivarはクラスのクライアントには関係がないため、パブリックAPI(ヘッダー)に表示されないようにする必要があります。

@implementationまたはclass-extensionにそれらを配置することに大きな違いはありません。一貫性を保つために、私は常にそれらを@implementationに配置します。

于 2013-03-04T22:46:21.383 に答える