これは初めての投稿です。このサイトは貴重なリソースでした。Objective-Cでアクセサを継承します
私はかなり客観的に新しいです - Cので、ご負担ください。
私は基本的なクラスをいくつか持っていますので、私は "プライベート"なので読みやすくしました。明らかにするために、私はそれらを外部で変更可能にしたくありませんが、私はこのクラス内で 'set'アクセサを使用することを怠っています。だから... ...
// .h file
@interface Vehicle
@property (nonatomic, readonly) int speed;
@end
はまた、私はアクセサは、このクラスで
// .m file
//Private properties and methods
@interface Vehicle()
@property (nonatomic, readwrite) int speed;
@end
@implementation
@synthesize speed = _speed;
- (void) someMethod {
[self setSpeed:10]; // Works fine
}
@end
を書き込み可能にしない。しかし、私はこのクラスを継承している場合、今、派生クラスは、もはや持って行うために、カテゴリ・インターフェース・ブロック内のプロパティ宣言を繰り返しset accessorメソッド(私の場合はsetSpeed)。私は再び合成する必要がありますか?継承の目的を破るようなものだと思う。私はインスタンス変数を直接(_speed = 10;)変更することができますが、むしろそうではないことを知っています。私の理解には何か間違いがあると確信しています。ありがとう!
// Example
@interface Ship : Vehicle
@end
@implementation
- (void) someOtherMethod {
[self setSpeed: 2]; // DOES NOT WORK, would like it to
}
@end
私は私が求めているものをと思い、私はそのプライベート@interfaceのsomeNameという()カテゴリを継承しない方法..です – Patrick
私は」あなたは、派生クラス専用のヘッダーを介してプライベートインターフェイスを共有できると推測しています含めることができます。 (私はこれを試していないので、答えではなくコメントです。) –