次のようなクラス階層を作成したい:AbstractBaseClass-> SubClass1、AbstractBaseClass-> subClass2抽象基本クラスには2つのインスタンス変数(タイプID?)と、千の変数のセッターとゲッターが必要です...サブクラス1ではtpyeNSNumberとNSSTringである必要があり、他のサブクラスでは両方ともNSNumberになります...基本クラスを継承し、セッターとゲッターを上書きしてNSNumberをスーパークラスのIDにキャストしますか?
質問する
170 次
1 に答える
3
基本クラスで型プロパティを作成する場合id
、サブクラスで余分なことを何もせずに、それらを使用して任意の型のオブジェクトを格納できるはずです。
やや奇妙な例::)
// Base class .h
@interface BaseClass : NSObject
@property (nonatomic, strong) id something;
@end
// Sub class .m
- (id)init {
self = [super init];
if (self) {
BOOL test = (random() > random());
if (test) {
[self setValue:@"A string" forKey:@"something"];
} else {
[self setValue:@42 forKey:@"something"];
}
}
return self;
}
// Caller
for (int i = 0; i < 5; i++) {
SubClass *sub = [[SubClass alloc] init];
NSLog(@"Subclass result: %@", sub.something);
}
于 2012-11-17T14:24:00.760 に答える