我想用我指定的初始化程序初始化一个类,以避免在不初始化所有实例变量的情况下使用该对象。出于某种原因,我无法在swift 2中将init()方法标记为私有。我在swift 1.2中将init()标记为私有。是否在Swift 2.0中删除了?反正将init()标记为私有!?
答案 0 :(得分:1)
也许你应该尝试这种模式:
class PrivateInitObject: NSObject {
var text: String!
internal init(withText text: String){
super.init()
self.text = text
}
}
之后您可以看到没有公共init()
class someClass {
let obj = PrivateInitObject(withText: "some text")
let obj2 = PrivateInitObject() // compile error, init() is private
}