来自开发人员论坛上的Apple员工:
“向编译器和内置程序声明您确实不希望与NSCoding兼容的方法是执行以下 *** 作:”
required init(prer: NSCoder) { fatalError("NSCoding not supported")}
如果您知道自己不想遵守NSCoding,则可以选择这种方法。我已经在很多SpriteKit代码中采用了这种方法,因为我知道我不会从情节提要中加载它。
您可以采用的另一种效果很好的方法是将该方法实现为一种方便的初始化,如下所示:
convenience required init(prer: NSCoder) { self.init(stringParam: "", intParam: 5)}
请注意中对初始化程序的调用
self。与所有非可选属性相反,这使您只需要对参数使用伪值,同时避免引发致命错误。
第三个选项当然是在调用super时实现该方法,并初始化所有非可选属性。如果对象是从情节提要中加载的视图,则应采用以下方法:
required init(prer aDeprer: NSCoder!) { foo = "some string" bar = 9001 super.init(prer: aDeprer)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)