@IBOutlet默认情况下应该是私有的还是内部的iOS?

时间:2018-04-02 14:29:42

标签: ios swift iboutlet

@IBOutlets通常不从其View Controller外部访问。为什么在Xcode中创建默认设置为私有?最佳做法是什么?

@IBOutlet weak var myButton: UIButton!

3 个答案:

答案 0 :(得分:3)

我想这是旧的Objective-C时代的遗留物,但是现在我们有了Swift,我们希望一切都很安全it is indeed the best practice to set @IBOutlets to private

没有一个理由说它应该是内部的,有很多理由说明为什么它应该是私有的,这是显而易见的,所以我不会列出它们。

答案 1 :(得分:2)

在最佳做法中,您可以添加fileprivateprivate属性。

这有助于您私下保留所有视图属性并封装使用用户界面所需的所有元素,并在必要时创建其他字段internalpublic

如果您想在其他类或结构中使用属性,或者internal属性,如果将来您在库中使用它,则可以使用public属性。

例如,“配置文件”屏幕上的User数据类型的属性可以是内部的(默认情况下),usernameLabel或avatarImageView可以是fileprivateprivate

当然,要避免不必要的视图属性使用。

答案 2 :(得分:1)

因为有人可能想要或不想让它们变得私密。虽然保持每个视图控制器在某种程度上是原子的,但是保持复杂性并保持私有方法和属性有助于实现这一点,但在某些情况下,在控制器之间直接传递信例如,可以使用子视图控制器来允许重用复杂的组件。