我有一个类:
@interface BasicDescription : NSObject
@property (strong,nonatomic) NSString *author;
@property (assign,nonatomic) NSInteger year;
@property (strong,nonatomic) NSString *owner;
第二类:
@interface AdvDescModel : BasicDescription
-(id)initWithBasicModel:(BasicDescription*)basicModel;
所以我的问题是当我创建新对象时如何分配所有属性。现在我有了
AdvDescModel *adv = [AdvDescModel alloc] initWithBasicModel:basic];
然后在初始化器中:
-(id)initWithBasicModel:(BasicDescription*)basicModel {
if(self = [super init]) {
[self setAllParams:basicModel];
}
return self;
}
-(void)setAllParams:(BasicDescription*)bModel {
[self setAuthor:bModel.author];
[self setYear:bModel.year];
[self setOwner:bModel.owner];
}
但是有没有更好的办法呢?现在我必须观察我的所有属性并为它们中的每一个调用 setter。
最佳答案
你初始化对象的方式还不错,如果它满足你的要求你可以用这种方式离开......但是看看Builder Pattern在这种情况下,这将是最好的选择。
关于objective-c - 子类化和属性分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817703/