【发布时间】:2016-07-10 00:30:00
【问题描述】:
我在两个不同的文件中有两个 Swift 类,它们都在同一个目标中。有没有办法让一个人访问另一个人的private 成员而不将它们暴露为internal 或public?
(我实际上是在寻找类似于 C++ 中的 friend 的东西。)
动机:
这对于在单独的“转换”类中实现 UIViewControllerAnimatedTransitioning 可能很有用——通常需要对源视图控制器和目标视图控制器有深入的了解——而不需要这些视图控制器将 private 子视图暴露给其余的目标。
【问题讨论】:
-
C++ 好友功能太疯狂了。这就是为什么没有其他语言实现它的原因。如果您想访问变量,请将它们公开。
-
我个人觉得它在编写单元测试时很有用。
-
当前 Swift 中的单元测试状态是疯狂的。为什么@testable 只显示内部方法?
-
我也有一个很好的用例。但每天我都看到斯威夫特是个赤裸的皇帝。它只是在这个位置,因为它得到了所有 Apple 粉丝男孩的欢呼。