我想用我的指定初始值设定项初始化一个类,以避免在不初始化所有实例变量的情况下使用该对象。出于某种原因,我不能将init()方法标记为Swift 2中的私有方法。我在swift 1.2中将init()标记为private。它在Swift 2.0中被删除了吗?无论如何要将init()标记为私有!?如何将超级类初始值设定项标记为swift私有?
0
A
回答
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
}
+0
重新阅读该问题,然后重新阅读下面的注释... –
+0
我们可以使用'@ available'属性使其对用户不可用。但我认为这不是最好的方式。 – guru
相关问题
- 1. 如何知道超类指定的初始值设定项?
- 2. 如何为自定义UITableViewCell类设置初始值设定项?
- 3. 如何在Swift中为NSManagedObject子类创建指定的初始值设定项?
- 4. 如何使用Swift结构隐式初始值设定项?
- 5. 为什么我们在Swift中重写初始值设定项?
- 6. Swift类没有初始值设定项,但是有属性观察者
- 7. 为什么要重写超类的指定初始值设定项?
- 8. Swift超级初始化程序
- 9. Swift的超级初始问题
- 10. 如何从Objective-C调用Swift初始值设定项(有一个参数)?
- 11. Swift:自定义ViewController初始值设定项
- 12. 从ember.js 1.11.3升级到1.12以删除弃用警告时,如何将这些初始值设定项转换为实例初始值设定项?
- 13. UIViewController如何在Swift中设置默认的非参数初始值设定项?
- 14. 如何在swift方便初始值设定项中返回自定义对象?
- 15. 如何将初始值设置为ng-model选项?
- 16. 为什么类内初始值设定项只能使用=或{}?
- 17. 必须调用超类'日'错误的指定初始值设定项
- 18. 指定初始化程序缺少超级调用超级类的指定初始化程序
- 19. 字典初始值设定项对收集初始值设定项有什么好处?
- 20. wpf设计师:类型初始值设定项引发异常
- 21. 对象初始值设定项(.net 4.0)
- 22. 错误“无效初始值设定项”
- 23. 协变对象初始值设定项?
- 24. CodeDom和集合初始值设定项
- 25. 运行时C初始值设定项
- 26. 如何设置选择标题以使用变量float作为初始值? (Swift)
- 27. Java:超类中私有变量的初始化
- 28. “UIImage”类的指定初始值设定项是什么?
- 29. 在不同的swift文件中覆盖超类的默认初始值设定项
- 30. 一类中静态初始值设定项的初始化顺序
您可以使用内部,比这将是你的子类可见。 – dirtydanee
@dirtydanee:这不太正确。在Swift中,内部访问使实体可以在其定义模块的任何源文件中使用。 –
一个具体的例子会很有帮助。 Swift编译器不允许在不初始化所有实例变量的情况下创建对象。 –