MyLoginViewController
是PFLogInViewController
的子类。
logInViewController
是MyLogInViewController
MainViewController.m
类型的对象
即
// MainViewController.m
MyLogInViewController *logInViewController = [[MyLogInViewController alloc] init];
logInViewController.delegate = self;
logInViewController.fields = PFLogInFieldsUsernameAndPassword |
PFLogInFieldsTwitter |
PFLogInFieldsFacebook |
PFLogInFieldsSignUpButton |
PFLogInFieldsDismissButton;
正如您在fields property
MainViewController.m
一样
我想在MyLogInViewController
中设置此,以便每个MyLogInViewController
对象都设置它。
但是,字段属于readonly
类型
如下所示:https://www.parse.com/docs/ios/api/Classes/PFLogInView.html#//api/name/fields
@property (nonatomic, readonly, assign) PFLogInFields fields
如何覆盖此? (我考虑过使用自定义吸气剂 - 但不知道如何正确执行)
我试图做的是不好的做法,如果是的话,为什么?
编辑:原来我看的是View文档而不是ViewController文档。感谢mrt发现这一点。
答案 0 :(得分:1)
如果有人做了一些只读的事情,并且他们知道自己在做什么,这可能意味着它真的不应该被设置在课堂之外。但是,仍有一些理由可以做你想做的事情。你为什么不在init方法中这样做?
编辑:
可以设置PFLogInViewController中的fields属性。因此,您可以在MyLogInViewController类的init方法
中执行此操作- (id)init
{
self = [super init];
if (self) {
// Do aditional init stuff
self.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsTwitter | PFLogInFieldsFacebook | PFLogInFieldsSignUpButton | PFLogInFieldsDismissButton;
}
return self;
}
这样,你就不会干扰班级的内部。
答案 1 :(得分:0)
您是否尝试过声明
@property (nonatomic, readwrite, assign) PFLogInFields fields
在您的子类中?