转载

iOS7给NSURLSessionTask添加分类崩溃

概述

明天遇到一个BUG,不过只是在iOS7.0上出现的bug。问题是这样的:给NSURLSessionTask添加了分类来增加一个属性,即operation对象(弱引用),在iOS7以上给task.operation赋值时,都没有问题,但是在iOS7.0上必闪退。

闪退打印的提示信息是:

  [__NSCFUploadTask setOperation:]unrecognized selector ...   

很怪的bug吧!起初我怀疑是因为我直接在当前Operation文件中添加NSURLSessionTask分类导致查找不到,于是我尝试了将Operation分类改成单独的文件,结果还是一样!

目前未找到原因

如果大家有遇到过此类问题,还请告知。最终我不得不去掉NSURLSessionTask分类,改成以task对象来判断任务,然后更新对应的数据。

当然,这里是做视频上传的任务的封装,本想提高访问效率,使用添加分类的方式可以在代理中直接取到对象然后更新数据即可。但是,现在在iOS7上不可行,于是不得不去掉这种方式,改成遍历operationQueue中的operations来判断公开的task对象是否与代理返回的task一致,然后更新数据。这样做效率自然要下降,每次回调都需要遍历一遍查找对象。

小结

目前只发现在iOS7某手机上出现此问题,不知道其他iOS7手机是否都会出现,但是测试机出现了这样的问题,那就是p1级的bug,问题很严重的。

如果大家有遇到过并有足够的时间去研究探索,还请将解决办法分享给大家!谢谢啦!

关注标哥

联系方式 关注 备注
合作联系群 347363861 接项目、私活
iOS直播音视频技术 256239496 实名制且群规严,定期清理
标哥博客iOS交流群 552095943(新) 群里很活跃,定期清理
标哥博客iOS交流群 324400294(满)|494669518(满)|494669518(满)|250351140(满) 群里很活跃,定期清理
微信公众号 iOSDevShares或者iOS开发技术分享 关注公众号阅读好文章
新浪微博 @标哥的技术博客 关注微博动态
GITHUB CoderJackyHuang 文章Demo都在GITHUB
联系标哥 关于标哥 保持活跃在最前线
原文  http://www.henishuo.com/ios7-nsurlsessiontask-category-crash/
正文到此结束
Loading...