从Objective-C到Swift,你必须会的(三)init的顺序
2024-08-26 09:18:54
Objective-C的构造函数吧,就最后return一个self。里头你要初始化了什么都可以。在Swift的init函数里把super.init放在前面,然后再初始化你代码里的东西就会报错了。
所以:
init(frame: NSRect) {
super.init(frame: frame)
subviewGroup = GridViewGroup(rows: 9, columns: 9, gridView: self)
} /*** Properties ***/
let subviewGroup: GridViewGroup
是不对的。
应该是什么样的呢:
init(frame: NSRect) {
subviewGroup = GridViewGroup(rows: 9, columns: 9, gridView: self)
super.init(frame: frame)
}
具体到UITableView的时候:
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
self.tableView = UITableView(frame: CGRectMake(0, 0, CGRectGetWidth(rect), CGRectGetHeight(rect)), style: UITableViewStyle.Plain) super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
dlog()
self.view.addSubview(self.tableView) self.tableView.delegate = self self.tableView.dataSource = self self.tableView.allowsSelection = true }
在super.init之后才能用self给delegate、datasource什么的去赋值。
最新文章
- Python Day17
- Android 手机卫士--实现设置界面的一个条目布局结构
- 洛谷 P1029 最大公约数和最小公倍数问题 Label:Water&;&;非学习区警告
- [原]OpenGL基础教程(四)VBO+纹理绘制四边形
- [usaco2009febgold]道路翻新 最短路+dp
- What does enumerable mean?
- BZOJ4195 [Noi2015]程序自动分析(离散化+并查集)
- SharpDevelop with Silverlight
- Win32中安全的子类化(翻译)
- C---数组名作函数参数
- 慧都十年大促起幕,Dev、BCG等明星控件6.8折起!
- shell中的特殊符号
- C#实体类生成XML与XML Schema文档
- JavaScript ES6 新特性详解
- Codeforces Round #554 (Div. 2) C. Neko does Maths (简单推导)
- C# winform三种方法判断文本框textBox内容是否为空
- Autowired byType 与 byName 策略
- C#中用OLEDB操作EXCEL时,单元格内容长度超过255被截断
- 如何在TextView类中创建超链接 Linkify
- cxGrid 颜色设置