开发遇到问题总结
后台线程更新UI问题
- 场景描述:使用socket连接获取数据,将数据存入数组,每当收到一条是数据的时候,解析数据、添加到数据同时更新tableview中的数据。tableview的dataSource为这个数组。
- 遇到的问题:数据更新了但是Tableview中的数据要滑动一下tableview才能同步数据
- 原因分析:socket连接是异步的,更新UI是要在主线程的。所以把更新UI的方法添加到主线程即可。就是把reloadData方法添加到主线程。
UITableView高度问题
- 固定高度的时候使用
self.tableView.rowHeight = 88
不要使用UITableViewDelegate中的
1 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath |
使用第二个方法设置高度的时候,rowHeight属性会失效。一般情况下,用第一种方法去实现固定高度。第二种方法实现,多种Cell的高度。
需要计算高度的时候是有第三方框架
参考文章:
UITableView-FDTemplateLayoutCell - GitHub链接
label自适应宽高一级cell的自适应宽高
- 需求如下:label根据内容自适应宽度,label根据内容自适应高度。cell根据label自适应高度。
- 实现代码
- 结合另一篇文章
label自适应高度可以实现cell自适应。也可以使用第三方框架。
1 | cell.userName.text = [NSString stringWithFormat:@"%@ : ", _dataArray1[indexPath.row][@"userName"]]; |
JsonKit报错
一个是ARC问题 添加 -fno-obj-arc
另外一个是JsonKit在64位机器上出现Crash的问题
原因:内存溢出
解决办法:因为JsonKit太久没有更新还是使用MRC所有尽量不要在使用JsonKit换其他框架
已经用了的解决办法:下载这个人的JsonKit替换掉原来的JsonKit就好了。