他のクラスが呼び出すことができるメソッドはヘッダーファイルにあるべきだと理解していますが、@ propertyがヘッダーファイルにあるべきか、実装ファイルにあるべきかについて少し混乱しています。
どのようにその決定を下しますか、そしてそれはどのような違いをもたらしますか?
他のクラスに公開したいプロパティはすべて、.hファイルに格納されます。'private'プロパティ(しゃれを意図したもの)は、匿名のカテゴリまたはクラス拡張子の実装ファイルに含まれます。たとえば、プロパティの.hバージョンを読み取り専用にし、.mバージョンを読み取り/書き込みにすることもできます。
@interface CPClassFileName ()
@property (nonatomic, retain) NSString *string;
@end
@implementation
...
@end
他のクラス(または開発者)にivarへのアクセサーがあることを知らせたい場合は、ヘッダーに@propertyを配置します。
言い換えると、「パブリック」ゲッター/セッターが必要な場合は、ヘッダーに@propertyを配置します。それらをプライベートにしたい場合は、.mファイルに@propertyを配置します。