我有一個類:子類和屬性賦值
@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。
你不應該需要一個「準備好」的BasicDescription對象來初始化一個新的分配的! – Moxy 2012-08-05 16:17:22
這不是**需要**的問題,而是適應指定存在的原始情況。沒有要求只有一個類的初始化器。 – 2012-08-05 16:22:13
當然,你可以有多個初始化程序。但我寧願使用一個輔助方法(不是以init開頭的方法)來設置BasicDescription對象的屬性。 – Moxy 2012-08-05 16:52:18