例如,看看UIAlertAction,我们看到有一个方便的初始化器如下:
convenience init(title title: String?,
style style: UIAlertActionStyle,
handler handler: ((UIAlertAction) -> Void)?)
但是,在查看the class reference时,handler
未列为属性。它仅为title
,style
和enabled
。这是因为处理程序是封装的,其他类是不可访问的,还是处理程序没有存储为类变量?
答案 0 :(得分:2)
这是因为处理程序是封装的,其他类是不可访问的吗?
是
您可以通过成员GET http://localhost:8080/assets/i18n/en.json 404 (Not Found)
:
private
三级访问控制是:
class C
{
private var block: (() -> Void)?
init(_ block: (() -> Void)?) {
self.block = block
}
}
值只能在同一文件中访问。private
值只能在同一模块中访问(但在同一模块中的多个文件中)。internal
值也可以从其他模块访问。如果您在启用测试的情况下进行编译,则还可以使用public
从单独的测试目标访问@testable import MyModule
内容。
有关Access Control的详细信息,请参阅文档。