
这是代码.
@R_419_5565@ UIKitclass ContainerVIEwController: UIVIEwController { // Class "ContainerVIEwController" has no initializers - That I kNow why. // 'required' initializer 'init(coder:)' must be provIDed by a subclass of UIVIEwController var currentDetailVIEwController: UIVIEwController overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() }} 我曾经尝试过这两个错误都说出来,但是仍然不行.
解决方法 问题是:如果您声明任何存储的属性没有初始值,您必须实现自己的初始化程序来初始化它们.见 this document.喜欢这个:
var currentDetailVIEwController: UIVIEwControlleroverrIDe init(nibname nibnameOrNil: String?,bundle nibBundleOrNil: NSBundle?) { currentDetailVIEwController = UIVIEwController() super.init(nibname: nibnameOrNil,bundle: nibBundleOrNil)}convenIEnce overrIDe init() { self.init(nibname: nil,bundle: nil)}required init(coder aDecoder: NSCoder) { currentDetailVIEwController = UIVIEwController() super.init(coder:aDecoder)} 但是,我认为这不是你想要的.
正确的解决方案取决于您初始化currentDetailVIEwController的位置.
如果您始终在vIEwDIDLoad中初始化它,那么可以将其声明为“Implicitly Unwrapped Optional”
var currentDetailVIEwController: UIVIEwController!overrIDe vIEwDIDLoad() { super.vIEwDIDLoad() self.currentDetailVIEwController = DetailVIEwController()} 否则,如果currentDetailVIEwController可以为零,则应将其声明为“Optional”
var currentDetailVIEwController: UIVIEwController?总结
以上是内存溢出为你收集整理的ios – UIViewController子类的必需初始化器全部内容,希望文章能够帮你解决ios – UIViewController子类的必需初始化器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)