ios - 如何在 swift 中将父类(super class)初始值设定项标记为私有(private)?

标签 ios swift cocoa-touch swift2 ios9

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

最佳答案

也许你应该试试这个模式:

class PrivateInitObject: NSObject {

var text: String!    

 internal init(withText text: String){    
    super.init()

    self.text = text

  }
}

然后你可以看到没有public init()

class someClass {

   let obj = PrivateInitObject(withText: "some text")
   let obj2 = PrivateInitObject() // compile error, init() is private
}

关于ios - 如何在 swift 中将父类(super class)初始值设定项标记为私有(private)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239307/

相关文章:

ios - 保存位置并快速上传位置

objective-c - 同一屏幕上的两个表格 View

ios - 如何找到坐标所在的海洋

ios - 来自 API 调用的数据未填充到方法内部

iOS 11 presentViewController 落后于呈现 Controller

core-data - 在核心数据示例代码中存储 NSArray?

html - iOS 未在右侧显示元素 : 0/float: right

swift - 如何使用由变量确定的按钮将 a 链接到第二个 View Controller ?

ios - 使用 cocoa touch 框架在框架模块内包含非模块化 header

ios - 从我的应用打开 Gmail 应用