如何在swift中将超类初始值设定项标记为私有?

时间:2015-10-20 14:23:44

标签: ios swift cocoa-touch swift2 ios9

我想用我指定的初始化程序初始化一个类,以避免在不初始化所有实例变量的情况下使用该对象。出于某种原因,我无法在swift 2中将init()方法标记为私有。我在swift 1.2中将init()标记为私有。是否在Swift 2.0中删除了?反正将init()标记为私有!?

1 个答案:

答案 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
}