【发布时间】:2021-02-25 22:03:14
【问题描述】:
我试图隐藏一个内部类,以便调用者不知道它。如果调用者需要,他们可以使用公共方法获取内部类的实例。但是调用者应该不能直接获取到内部类。
显示我想要的示例:
class A {
static func getSettings() -> Settings {
return Settings()
}
class Settings {
func turnOnSomeThing() {
}
}
}
class test {
func testFunc() {
A.getSettings().turnOnSomeThing() // correct way of calling
A.Settings().turnOnSomeThing() // should not be possible
}
}
这在 Swift 中可行吗?
【问题讨论】:
-
我认为你要找的是单身
-
class Settings {987654324static let shared = Settings()987654326print(#function)987654328}987654330func testFunc() {987654332 @ // OKSettings().turnOnSomeThing()//错误}} -
我希望实例来自外部类的 getter 方法,以便在返回内部类的实例之前执行检查并确保调用成功。
-
您可以自定义共享实例。如果您不提供实际示例,将很难提供帮助developer.apple.com/documentation/swift/cocoa_design_patterns/…
标签: swift xcode class inner-classes access-control