本周任务
1.完成第二周share的聊天界面
2.完成学生管理系统
3.学习block传值、KVO传值、通知传值、以及懒加载
遇到的问题
聊天界面
- 聊天框的框的大小随着文字长度进行变化:
一开始没有思路,后来找学姐的博客,然后看到,原来有一个“方法”:
boundingRectWithSize: options: attributes: context:用于计算自适应高度
NSDictionary *attri = @{NSFontAttributeName:[UIFont systemFontOfSize:18]}; 调整字典中的文字大小
2.不会在UITableView最后插入行
insertRowsAtIndexPaths: withRowAnimation:
在索引路径处插入行
学生管理系统
1.传值的问题,特别奇葩,我一直从前往后传是“=”,然后往前传用的是协议传值,写完后在练习另外集中传值方式时,发现往回传也可以,找了半天的问题,最后还是求助了组长。原因如下:
用这两行代码时:
@property (nonatomic, strong) NSMutableArray* studentArray;
-------------------------------------------------------------
change.studentArray = _studentArray;
其实是把数组的首地址传到了后一个界面,后一个界面操作都是在对这个数组操作,而不是一个新的数组,所以不需要再传回来。
如果当练习传值时可以这样写:
@property (nonatomic, copy) NSMutableArray* studentArray;
-------------------------------------------------------------
sort.studentArray = [NSMutableArray arrayWithArray: _studentArray];
这种情况下就是两个不一样的首地址了,但是这里还有一个问题,那就是打印出地址:
会发现除了首地址不同,里面每个对象的地址还是相同的,这就是把相同的对象的地址放到了不同的数组中,所以当你修改这个数组里的对象的属性可以不需要从后往前传值,但是如果要是要新加或者删除等操作就需要传回来。
2.点击“exit”退出app
-(void) pressToExit {
[[UIApplication sharedApplication]
performSelector:@selector(suspend)];
}
总的来说这个其实很简单,主要是就是在传值。
传值的三种方法及懒加载
【iOS开发】——KVO传值
【iOS开发】——通知传值
【iOS开发】——block传值
【iOS开发】——懒加载