iOS开发中遇到的问题 (持续更新)

2017-12-27

iOS11 改变cell 高度时 TableView跳动。

if (@available(iOS 11.0, *)){

self.estimatedRowHeight = 0;
self.estimatedSectionHeaderHeight = 0;
self.estimatedSectionFooterHeight = 0;
}

接上面的问题 场景是项目中的tableView没有基类 ,总共有82个tableView 问怎么给这82个tableVIiew作适配

  1. runtime ?
  2. catagory ?
  3. 建一个基类 然后一个个替换 ?

我的选择为3,但是实际上也没有费多少事 后面会讲.
想当然会用 1 和 2 来解决, 但我尝试失败 ,如果有成功的请附上代码.

下面讲下我的做法:

sublime 正则替换

1 . 考虑到必须要有个基类才行了 我就没在runtime上太过纠结了,那么给大量的tableview做替换无疑是苦力活,我就想到了正则替换.
2 .Xcode中我没找到正则替换功能,转而目光投向sublime
3 .考虑正则替换表达式:
我们要替换的形式主要是 这样:

UITableView * someTableView; ==> BaseTableView *someTableView;
UITableView * someTableView = [[UITableView alloc]... ==> UITableView * someTableView = [[BaseTableView alloc]...

这里考虑到这个项目经手过很多人,代码极不规范,写正则的时候要注意好空格 (实际上查找的时候确实有书写方式不太一样的结果)
打开sublime 将需要修改的项目文件拖进去, 我直接拖了出去pod 的整个项目 然后command + Shift + F 调出查找替换
我的正则是 :
Find : UITableView\s*\*\s*(\w+;)
Replace :BaseTableView * $1;

Find : (=\s*\[\[\s*)UITableView(\s*alloc\s*\])
Replace :$1BaseTableView$2

最后保存就大功告成了,切记要做好版本管理,好做回退,不然出个错那就完蛋了

plus : \$1 $2为"()"中不变的部分 这样就可以做部分替换了 ,至于创建基类和将.h文件放到.pch文件中我就不详细赘述了

2018-01-04

直播项目退出直播后 然后程序退到后台 上面会有红条

停掉了直播的推流还是会有,消失的不是很及时,说明跟流没关系,最后同事查到了是音频采集问题,只要音频还在采集就会有.然后试了下微信发语音条立即切到后台,发现红条.
然后我去把音频采集在一开始就不做,发现不会有红条.
这样在结束直播的时候调用停止音频采集的方法就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值