博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从Objective-C到Swift,你必须会的(三)init的顺序
阅读量:6091 次
发布时间:2019-06-20

本文共 1122 字,大约阅读时间需要 3 分钟。

Objective-C的构造函数吧,就最后return一个self。里头你要初始化了什么都可以。在Swift的init函数里把super.init放在前面,然后再初始化你代码里的东西就会报错了。

所以:

1
2
3
4
5
6
7
init(frame: NSRect) {
    
super
.init(frame: frame)
    
subviewGroup 
= 
GridViewGroup(rows: 
9
, columns: 
9
, gridView: 
self
)
}
 
/
*
*
*  
Properties  
*
*
*
/
let subviewGroup: GridViewGroup

 是不对的。

应该是什么样的呢:

1
2
3
4
init(frame: NSRect) {
        
subviewGroup 
= 
GridViewGroup(rows: 
9
, columns: 
9
, gridView: 
self
)
        
super
.init(frame: frame)
}

 具体到UITableView的时候:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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什么的去赋值。

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/4036932.html
你可能感兴趣的文章
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>
07-k8s-dns
查看>>
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>