1. 程式人生 > >iOS 12 JS陣列Bug,可能帶來網際網路風波,附修復方法

iOS 12 JS陣列Bug,可能帶來網際網路風波,附修復方法

喜氣洋洋,被安利使用iOS12,紅紅火火,更新最新版本。

先來體驗一下:這是原網頁這是修復後的

點選網頁上方的 Click Refresh,可以看到,網頁重新整理後,原網頁中,陣列的順序在第二次訪問網頁的時候,變成了倒序,即便是關閉網頁重新進來,也會是倒序的。如果反覆重新整理幾次,陣列將會反覆倒序。看起來是 Webview 將這個陣列快取了。

通過測試,Array的其他API並沒有這種問題,包括手動改變陣列中的元素順序,都不會出現這種問題,目前只發現了使用 reverse 出現這種問題。

當我們使用 reverse 去改變陣列順序的時候,那麼陣列的順序一定對我們來說特別重要,如果第二次進來還是最後的順序,這將對我們的應用產生非常大的影響!

緊急寫了一個檔案來應對這個問題,如果有必要,大家可以使用,如果有問題歡迎大家PR。array-reverse-ios12

不知蘋果是否可以通過 HotPatch 來修復這個問題,如果不能那可能只能下次版本升級了。已蘋果的量級,這個版本可能會有影響很多使用者。