公共与私人IBOutlets

时间:2014-05-26 06:38:18

标签: ios oop private encapsulation iboutlet

我想知道在我需要从以下之间的另一个视图控制器中读取UILabel / UITextField的内容时,哪种情况被视为更好的做法两种可能性:

1)只需在.h文件中为IBOutlet创建一个UITextField,然后将其公开给所有人 2)在.h文件中创建NSString 只读属性,使其在实现文件中进行读写,并在每次私有 {{1}时更新它变化。

在我看来,第二个选项看起来是一个更好的方法,因为它维护了OOP封装,但是对于每个视图控制器中的每个UITextField,它似乎要做很多工作。

思考? 谢谢!

编辑:此外,如果我需要能够从外部设置UITextField / UILabel,但需要IBOutlets方法。所以我猜第二种选择是唯一的选择吗?

1 个答案:

答案 0 :(得分:2)

只需在视图控制器中创建getter方法即可返回所需的数据。例如UITextField

- (NSString *)getTextFieldText {
   return self.myTextField.text;
}

无需以这种方式添加冗余属性(NSString *)。 与封装一样,您隐藏私有数据(即您的IBOutlets)并仅公开其他人所需的数据