objective-c - 子类化和属性分配

标签 objective-c ios

我有一个类:

@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/

相关文章:

objective-c - 发送录制音频 POST

iphone - 如何将 "2011-01-12T14:17:55.043Z"之类的日期字符串转换为 1294841716 之类的长字符串?

ios - Objective-C : View PDF File Link With UIWebView

ios - 使用 "content-available": 1 payload not always calling application:didReceiveRemoteNotification:fetchCompletionHandler: 推送通知

ios - 在 spritekit 中访问子节点

ios - 在 IOS 中处理使用数据库登录的 TouchID 身份验证

iphone - 用于比较 Xcode 项目文件的工具

ios - 在拒绝 UIActivityController 的“保存图像”权限后,如何将用户重定向到设置?

ios - 如何搜索目录的目录?

iphone - LinkedIn 集成 r_network 和 w_messages 请求在 iOS sdk 中无法协同工作