手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2014年09月23日的文章

swift initwithnibname

本篇是个笔记

在参考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代码
  1. required init(coder decoder: NSCoder){  
  2.     super.init(coder: decoder)  
  3. }  

 

搞定

 参考:

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

 

Tags: swift