我想知道在我需要从以下之间的另一个视图控制器中读取UILabel
/ UITextField
的内容时,哪种情况被视为更好的做法两种可能性:
1)只需在.h文件中为IBOutlet
创建一个UITextField
,然后将其公开给所有人
2)在.h文件中创建NSString
只读属性,使其在实现文件中进行读写,并在每次私有 {{1}时更新它变化。
在我看来,第二个选项看起来是一个更好的方法,因为它维护了OOP封装,但是对于每个视图控制器中的每个UITextField
,它似乎要做很多工作。
思考? 谢谢!
编辑:此外,如果我需要能够从外部设置UITextField / UILabel
,但需要IBOutlets
方法。所以我猜第二种选择是唯一的选择吗?
答案 0 :(得分:2)
只需在视图控制器中创建getter方法即可返回所需的数据。例如UITextField
:
- (NSString *)getTextFieldText {
return self.myTextField.text;
}
无需以这种方式添加冗余属性(NSString *)。 与封装一样,您隐藏私有数据(即您的IBOutlets)并仅公开其他人所需的数据