我有一些我想要完成的代码。我有一个基类和一些属于我的子类的属性。需要实施Getter和setter。在我的子课上,我有一个属性并引用它,ExampleType &type
。 ExampleType
父亲是BaseType
女孩无法实例化。我的属性中基类中的getter和setter取决于BaseType
。所以如果我的基类中有这样的BaseType *type
。我吸气的例子:
-(NSString *) property {
return self.type->returnString;
}
这实际上取决于我的子属性类型ExampleType
。我不想在我的子类中为属性复制/粘贴代码。有谁知道如何做到这一点?
答案 0 :(得分:0)
我想我知道你想要完成什么。以下是类型类:
@interface BaseType : NSObject
@property (nonatomic, strong) NSString* returnString;
@end
@implementation BaseType
@end
@interface ExampleType : BaseType
@end
@implementation ExampleType
- (NSString *)returnString
{
return @"returnString from ExampleType";
}
@end
以下是主要对象,包含类型类:
@interface Parent : NSObject
@property (nonatomic, strong) NSString* property;
@end
@implementation Parent
- (BaseType*)type
{
NSAssert(NO, @"should be implemented in child class");
return nil;
}
- (NSString *)property
{
return self.type.returnString;
}
@end
@interface Child : Parent
@property (nonatomic, strong) ExampleType* type;
@end
@implementation Child
@end
所以现在你的子类中有一个属性ExampleType
,而property
实现只存在于父类中。