gpt4 book ai didi

ios - 如何在子类中设置只读属性?

转载 作者:行者123 更新时间:2023-11-29 12:58:23 27 4
gpt4 key购买 nike

MyLoginViewControllerPFLogInViewController 的子类。

logInViewControllerMainViewController.m

MyLogInViewController 类型的对象

//  MainViewController.m

MyLogInViewController *logInViewController = [[MyLogInViewController alloc] init];
logInViewController.delegate = self;
logInViewController.fields = PFLogInFieldsUsernameAndPassword |
PFLogInFieldsTwitter |
PFLogInFieldsFacebook |
PFLogInFieldsSignUpButton |
PFLogInFieldsDismissButton;

如您所见,在 MainViewController.m 中设置了 fields 属性

我想在 MyLogInViewController 中设置它,以便每个 MyLogInViewController 对象都设置它。

但是,fields 的类型是readonly从中可以看出:https://www.parse.com/docs/ios/api/Classes/PFLogInView.html#//api/name/fields

@property (nonatomic, readonly, assign) PFLogInFields 字段

  1. 如何覆盖它?(我考虑过使用自定义 getter - 但不知道如何正确执行)

  2. 我尝试做的事情是否被视为不良做法,如果是,为什么?

编辑:原来我在看View文档不是 ViewController文档。感谢 mrt 发现这一点。

最佳答案

如果有人做了只读的事情,并且他们知道自己在做什么,那可能意味着它真的不应该设置在类之外。但是,可能仍然有一些理由去做你想做的事。为什么不在 init 方法中这样做呢?

编辑:

可以设置 PFLogInViewController 中的 fields 属性。所以你可以在你的 MyLogInViewController 类初始化方法中做到这一点

- (id)init
{
self = [super init];
if (self) {
// Do aditional init stuff
self.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsTwitter | PFLogInFieldsFacebook | PFLogInFieldsSignUpButton | PFLogInFieldsDismissButton;
}
return self;
}

这样,您就不会干扰类的内部结构。

关于ios - 如何在子类中设置只读属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407759/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com