美文网首页
iOS 最近碰到的一些奇怪bug

iOS 最近碰到的一些奇怪bug

作者: 某非著名程序员 | 来源:发表于2020-07-18 19:23 被阅读0次

1.socket快速发送消息会出现接受消息阻塞

场景:快速点击某个按钮,发送消息时,会出现socket响应消息丢失。

最后分析出现是-[NSInputStream read:maxLength:]卡主了。
下面是出现的解释:TCP Socket的一些行为
Does -[NSInputStream read:maxLength:] block?

read:maxLength:会阻塞,直到至少有一个字节可用之后,或者发生错误或者流到达EOS。它也将阻塞,直到打开流为止。

我的解决方案:

通过心跳来打破这种等待行为
定义一个计时器,每秒触发一次,当read:maxLength阻塞时发送心跳。

2.数据库卡顿解决

场景:使用时间字段对数据进行升序排序,部分机型出现卡顿

测试时数据量也不是很大,而sql查询的语句大约是8s左右。当时以为是数据库在主线程操作导致的卡顿。

解决方案:

  1. 最后为时间字段加了索引解决了卡顿问题. 最后的结论是iOS某些系统兼容的问题,按道理几百条数据不可能会这么慢。
  2. 数据库操作移至子线程

3.id<delegate>使用assgin造成偶现崩溃

这种崩溃日志没有捕捉到,但出现闪退,建议全局搜索,替换成weak修饰。

4.Can't add self as subview

场景:没有复现

解决方案:根据网上的解决方案做容错处理,防止快速push。

相关文章

网友评论

      本文标题:iOS 最近碰到的一些奇怪bug

      本文链接:https://www.haomeiwen.com/subject/amefkktx.html