本期技術週刊一起探究關於 iOS 的特性,歡迎大家閱讀 ~
文章推薦
探究 iOS 記憶體問題 // 杭城小劉
本文從 Tagged Pointer、objc 原始碼、dealloc 原理、AutoreleasePool 原理、野指標探究等技術點展開聊了聊 iOS 記憶體相關問題。
一行程式碼解決 Scrollview 和 TextInput 焦點獲取問題 // 似水流年
透過日誌以及邏輯分析發現兩個問題:
- 第一次點選列表項無法觸發onPress點選事件
- 第一次點選其實是使輸入框失去焦點並隱藏鍵盤
知道問題在哪就有解決問題的方向了:點選列表項使輸入框自動失去焦點,並觸發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推送的修復更新上線後存在問題,後臺報錯。連忙跑到測試那裡看報錯詳情,報錯如下:
iOS 之 Swift
Swift 編譯器之迷惑行為一 // rickytan
OptionSet 是 Swift 中比較常用的一個內建協議,它的存在算是填補了既要強型別,又要支援按位取與的空白,是對 OC 中 NS_OPTIONS 的橋接。從宣告上可以看到,OptionSet 協議本身又服從 SetAlgebra 協議,後者只定義了常見的集合操作方法,如 union remove insert 等,而前者在 extension 中給了預設實現
Swift Talk:理解值型別 // Sunxb
我們使用寫時複製 copy on write 的思想,對 NSMutableData 進行封裝,以此來理解我們的標準庫的實現方式。
標準庫中提供的所有的基本集合型別都是值型別,透過寫時複製的思想保證了他的高效性。集合型別是我們比較常用到的資料型別,所以瞭解他的效能特性很重要,我們來一起看一下寫時複製是如何工作的,並且嘗試自己手動實現一個。
問答推薦
- 如何在 window 上 在 ios 環境下除錯專案?
- ios 與 android 在 標準上 js 在語法支援上有什麼差異嗎?
- IOS app webview 裡面怎麼監聽跨域 iframe 裡面 video 的播放事件?
- 在 iOS 上有沒有語音實時翻譯成文字的 SDK ?
- ios h5 高度沒鋪滿,這是咋回事啊 ?
- Swift FileManager 怎麼申請檔案許可權?
- 關於 ios 15.4 後複製驗證碼的問題?
# SegmentFault 技術週刊 #
「技術週刊」是社群特別推出的技術內容系列,一週一主題。
每週二更新,歡迎「關注」。大家也可以在評論處留言自己感興趣的主題,推薦主題相關的優秀文章。
如有問題可以新增小姐姐微信~