UIScrollView+HeaderScaleImage.h 在iOS8上的坑

在APP中使用了UIScrollView+HeaderScaleImage.h,發(fā)現(xiàn)在iOS 8 系統(tǒng)上app中任何的uitableview被釋放之后,再點擊屏幕就會crash,報[UITableView _systemGestureStateChanged:]: message sent to deallocated instance 0x17385200,ios 9 ios 10完全沒有問題

2.后來發(fā)現(xiàn)任何的collectionview被釋放之后,點擊屏幕也會crash,報

[UICollectionView _systemGestureStateChanged:]: message sent to deallocated instance 0x17385200

3.把目光放在UIScrollView上,查找UIScrollView的分類,是否有問題

4.找到 UIScrollView+HeaderScaleImage.h 注釋了其中一部分代碼,并把所有的引用都注釋掉,依然有這個問題。

5.開始將目光放在_systemGestureStateChanged上,還有僵尸對象上,用instrument調(diào)試,依然無解。

6.六個小時過去了。

7.睡了一覺,然后又把目光放在UIScrollView上,將UIScrollView+HeaderScaleImage.h 中的代碼全部注釋掉了。

8.正常。感覺世界都亮了。

9.一步一步注釋,排除,最后發(fā)現(xiàn)這個里面重寫了uiscrollview的dealloc方法,導(dǎo)致scrollview在釋放的時候無法清除自己的觀察者身份,導(dǎo)致系統(tǒng)發(fā)通知的時候仍然能發(fā)到它身上。ios 9 沒問題,ios8上就會直接crash。

10.將最后那個dealloc中的代碼另外立出來,在controller的dealloc中主動調(diào)用這個方法,整個app沒幾個頁面用這個,所以也并沒有增加太多的工作量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,579評論 30 472
  • 1,警告:“xoxoxoxo” is deprecated解決辦法:查看xoxoxoxo的這個方法的文檔,替換掉這...
    layjoy閱讀 4,730評論 0 3
  • 對自己哪里都沒自信 唯有人緣。今天才知道 原來我什么都沒有了。當你說出友盡的時候 我以為是開玩笑 原來不是。謝謝你...
    wamagdmgwam閱讀 828評論 0 1
  • 1 AssetBundle AssetBundle 是Unity提供的一個功能,可以把資源(包括預(yù)設(shè)、模型、貼圖等...
    superzhan閱讀 2,522評論 0 3
  • 你總說 人生短暫 容易錯過 終留遺憾 深情總敵不過意亂情迷 猶猶豫豫還是做不了決定 多年之后 再回首 才知曉這有...
    不敢說愛你閱讀 263評論 0 1

友情鏈接更多精彩內(nèi)容