SegmentFault 思否技術週刊 Vol.77 — 探究關於 iOS 的特性

Beverly發表於2023-01-10

本期技術週刊一起探究關於 iOS 的特性,歡迎大家閱讀 ~

文章推薦

探究 iOS 記憶體問題 // 杭城小劉

本文從 Tagged Pointer、objc 原始碼、dealloc 原理、AutoreleasePool 原理、野指標探究等技術點展開聊了聊 iOS 記憶體相關問題。

一行程式碼解決 Scrollview 和 TextInput 焦點獲取問題 // 似水流年

透過日誌以及邏輯分析發現兩個問題:

  1. 第一次點選列表項無法觸發onPress點選事件
  2. 第一次點選其實是使輸入框失去焦點並隱藏鍵盤

知道問題在哪就有解決問題的方向了:點選列表項使輸入框自動失去焦點,並觸發onPress點選事件。

【 iOS 】UITextField 輸入長度限制時,中文輸入法導致的輸入問題 // Lynx

當我們有 UITextField 或者 UITextView 最大輸入長度需求的時候,會面臨一個問題,那就是如果我們使用系統輸入法或者其他輸入法的時候,在輸入最後幾個文字的時候,由於部分輸入法會將拼音字母等高亮字元展示在輸入框內,這時候輸入長度就可能超過最大長度,從而導致最後幾個文字輸入失敗,儘管這時候文字還沒到最大輸入長度。

技術總監:儘快解決這個 ios11 白屏問題 // 牛仔很busy

1 why:為什麼會白屏呢?
首先,只有 ios11 才會出現,說明不是沒有返回 html,從現象來看可以證實,頁面上顯示了標題,只是沒有內容。透過抓包發現,確實有返回html。基本可以肯定,問題出現在瀏覽器這一層,也就是上圖的紅色部分。

2 why:為什麼沒有內容?
抓包發現有返回 html,也返回了入口 js,也就是 app.xxx.js 和 chunk-vendors.xxx.js。有 js,但沒內容,那有兩種可能:

  • 入口js沒有執行
  • 入口js執行報錯了,導致後面渲染頁面的程式碼沒有執行

一次 IOS 通知推送問題排查全過程 // 扣釘日記

發現問題:在上週一個將要下班的夜晚,測試突然和我打招呼,說IOS推送的修復更新上線後存在問題,後臺報錯。連忙跑到測試那裡看報錯詳情,報錯如下:
image.png

iOS 之 Swift

Swift 編譯器之迷惑行為一 // rickytan

OptionSet 是 Swift 中比較常用的一個內建協議,它的存在算是填補了既要強型別,又要支援按位取與的空白,是對 OC 中 NS_OPTIONS 的橋接。從宣告上可以看到,OptionSet 協議本身又服從 SetAlgebra 協議,後者只定義了常見的集合操作方法,如 union remove insert 等,而前者在 extension 中給了預設實現

Swift Talk:理解值型別 // Sunxb

我們使用寫時複製 copy on write 的思想,對 NSMutableData 進行封裝,以此來理解我們的標準庫的實現方式。

標準庫中提供的所有的基本集合型別都是值型別,透過寫時複製的思想保證了他的高效性。集合型別是我們比較常用到的資料型別,所以瞭解他的效能特性很重要,我們來一起看一下寫時複製是如何工作的,並且嘗試自己手動實現一個。

問答推薦


# SegmentFault 技術週刊 #

「技術週刊」是社群特別推出的技術內容系列,一週一主題。

每週二更新,歡迎「關注」。大家也可以在評論處留言自己感興趣的主題,推薦主題相關的優秀文章。

如有問題可以新增小姐姐微信~

image.png

相關文章