为什么处理程序不在Apple的Class Reference中列为属性?

时间:2015-09-24 05:25:59

标签: ios swift class oop

例如,看看UIAlertAction,我们看到有一个方便的初始化器如下:

convenience init(title title: String?,
           style style: UIAlertActionStyle,
         handler handler: ((UIAlertAction) -> Void)?)

但是,在查看the class reference时,handler未列为属性。它仅为titlestyleenabled。这是因为处理程序是封装的,其他类是不可访问的,还是处理程序没有存储为类变量?

1 个答案:

答案 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的详细信息,请参阅文档。