【发布时间】:2018-02-20 08:13:31
【问题描述】:
我真的很想知道这背后的原因是什么。我发现很多时候我的代码(例如 IBActions 和 IBOutlets)都暴露在不应该出现的地方。
【问题讨论】:
-
从apple docs 开始,Swift 通过为典型场景提供默认访问级别来减少指定显式访问控制级别的需要。事实上,如果您正在编写单目标应用程序,您可能根本不需要指定显式访问控制级别。您可能需要阅读 默认访问级别 & 单目标应用程序的访问级别部分。
-
@nayem 你应该这样回答。
-
所以我想这是简单而不是安全?
-
Swift 强烈支持安全而不是简单。
private与安全无关。它是关于记录意图,在较小程度上是关于跨框架性能(但主要是关于意图 IMO)。调用 IBAction 没有什么不安全的;这只是不好的做法,private甚至不会阻止您调用它,因为它已暴露于 ObjC。 Swift 团队的目的是让简单的程序保持简单,并且只迫使开发人员学习和使用新工具,因为他们的程序会从中受益。但它很少会为了实现这一目标而牺牲安全性。
标签: swift