3

他のクラスが呼び出すことができるメソッドはヘッダーファイルにあるべきだと理解していますが、@ propertyがヘッダーファイルにあるべきか、実装ファイルにあるべきかについて少し混乱しています。

どのようにその決定を下しますか、そしてそれはどのような違いをもたらしますか?

4

2 に答える 2

6

他のクラスに公開したいプロパティはすべて、.hファイルに格納されます。'private'プロパティ(しゃれを意図したもの)は、匿名のカテゴリまたはクラス拡張子の実装ファイルに含まれます。たとえば、プロパティの.hバージョンを読み取り専用にし、.mバージョンを読み取り/書き込みにすることもできます。

プライベートカテゴリで定義されたプロパティを持つ実装ファイル

@interface CPClassFileName ()
@property (nonatomic, retain) NSString *string;
@end



@implementation
...
@end
于 2012-07-16T23:05:23.673 に答える
0

他のクラス(または開発者)にivarへのアクセサーがあることを知らせたい場合は、ヘッダーに@propertyを配置します。

言い換えると、「パブリック」ゲッター/セッターが必要な場合は、ヘッダーに@propertyを配置します。それらをプライベートにしたい場合は、.mファイルに@propertyを配置します。

于 2012-07-16T23:05:28.993 に答える