【发布时间】:2016-01-19 06:27:54
【问题描述】:
我想用我指定的初始化程序初始化一个类,以避免在未初始化所有实例变量的情况下使用该对象。出于某种原因,我无法在 Swift 2 中将 init() 方法标记为私有。我在 Swift 1.2 中将 init() 标记为私有。它在 Swift 2.0 中删除了吗?无论如何将 init() 标记为私有!?
【问题讨论】:
-
您可以使用内部,而不是对您的子类可见。
-
@dirtydanee:这不太正确。在 Swift 中,内部访问允许实体在其定义模块的任何源文件中使用。
-
一个具体的例子会很有帮助。 Swift 编译器不允许在未初始化所有实例变量的情况下创建对象。
-
Swift 的“惰性存储属性”为初始化实例变量提供了一个优雅的解决方案。它们只被初始化一次,但只有在第一次访问时才被初始化。这也可以消除使它们成为可选项的需要。这是一个很棒的功能!
-
我的问题是,如果我有一个必须用字符串数组初始化的类,它应该只用那个初始化器来初始化。我不希望使用任何其他初始化程序创建类的实例。
标签: ios swift cocoa-touch swift2 ios9