本篇是个笔记
在参考oc代码的时候,有一个initWithNibName方法,在使用swift重写的时候,发现,如果super.init,就会报错,参考了网上很多代码,有人说,重写init方法。不能用override,要用required,结果也是无效
所幸stackflow上面已经有人提出了,说是不能用 init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) 这种方法,只能用 init(NSCoder),网上也有很多人写了例子。
但好象每一个版本的xcode 测试版都不太正常,所以,有的例子就是:func init(coder code:NSCoder!),但实际在使用的时候发现它有提示,说是必须要required,而且NSCoder!不要加感叹号。
于是我最后的代码就是:
XML/HTML代码
- required init(coder decoder: NSCoder){
- super.init(coder: decoder)
- }
搞定
参考:
1、http://blog.johnregner.com/post/93071481303/ios-programming-in-swift-chapter-1
2、http://stackoverflow.com/questions/25267907/initwithnibname-does-not-implement-superclass-swift