原创 iOS 16 beta 5 重新顯示電池百分比

iOS 16 beta 5 重新顯示電池百分比 介紹: https://xlsn0w.github.io/jekyll/2022/08/05/XLsn0w/

原创 iOS底層實現alloc-init

## alloc: alloc通過內存對齊的方式在內存中開闢申請了空間, 伴隨着初始化了isa。 相當於建了一所固定大小的房子,並且指明瞭房子的所有者。 ## init: init直接返回了對象本身,沒有任何額外的操作。 正是因爲它什麼也

原创 iOS應事件的生命週期

1.手指觸碰屏幕,屏幕感應到觸碰後,將事件交由IOKit處理。 2.IOKit將觸摸事件封裝成一個IOHIDEvent對象,並通過mach port傳遞給SpringBoad進程。 mach port 進程端口,各進程之間通過它進行通信。

原创 Mac可以Ping通, 但瀏覽器打不開鏈接解決辦法

可以Ping通和DNS解析,但打不開網頁的解決辦法 點擊網絡-編輯位置-,新建位置-點擊+ 完成後選擇新的位置- New

原创 iOS AutoReleasePool底層實現- AutoreleasePoolPage的push和pop

//***********push方法*********** void * objc_autoreleasePoolPush(void) { return AutoreleasePoolPage::push(); } //*********

原创 iOS NSMutableArray底層實現-環形緩衝區

NSMutableArray的底層原理 _used 是計數的意思 _list 是緩衝區指針 _size 是緩衝區的大小 _offset 是在緩衝區裏的數組的第一個元素索引 數據結構 正如你會猜測的,__NSArrayM 用了環形緩衝區 (c

原创 iOS NSDictionary的底層實現-用hash表來實現key和value之間的映射和存儲的

Objective-C中的字典NSDictionary底層其實是一個哈希表 在CFDictionary的結構體的時候看到了key和values這兩個二級指針, 可以基本斷定爲數組結構,由於是兩個數組分別存儲, 因此,key哈希出來的數組下標

原创 Flutter 開發大全

Skia是個2D向量圖形處理函數庫 CPU 渲染稱之爲軟件繪製(關閉硬件加速時使用該引擎,開啓硬件加速時使用OpenGL), Android CPU 渲染引擎框架爲 Skia, 它是一款在底端設備上呈現高質量的 2D 跨平臺圖形框架, Go

原创 iOS觸發離屏渲染

在OpenGL中,GPU有2種渲染方式 On-Screen Rendering:當前屏幕渲染,在當前用於顯示的屏幕緩衝區進行渲染操作 Off-Screen Rendering:離屏渲染,在當前屏幕緩衝區以外新開闢一個緩衝區進行渲染操作 離

原创 爲什麼iOS出現頁面卡頓?

1.爲什麼iOS出現頁面卡頓? 出現卡頓的現象,這是由於CPU計算和GPU渲染,之間未及時交換數據丟失幀導致的結果。 掉幀,也就是說CPU處理數據和GPU渲染時間過長導致掉幀 頁面顯示也就是卡頓 1、儘量用輕量級的對象,比如用不到事件處理的

原创 Runloop 本質是什麼?

Runloop 本質是什麼? 本質是一個OC對象,內部也有isa指針。 Runloop 結構分析 結構內部有2個重要的成員變量 Runloop 運行模式 Runloop 事件處理流程 Runloop 牽涉概念 自動釋放池 內存管理 定時器

原创 Flutter知識

1、Dart是什麼? 和Flutter是什麼關係? Dart是Google開發的一種面向對象的計算機編程語言,和Java類似 Flutter 是 Google 開源的 UI 工具包,幫助開發者通過一套代碼庫高效構建多平臺精美應用,支持移動、

原创 二分查找平均時間複雜度O( log n )

使用二分查找在有序數組a[n]中查找一個元素x的時間複雜度__O( log n )________。O(n)O(n2)O(log n)O(n log n)二分查找平均時間複雜度O( log n )

原创 n步臺階一次只能1步或2步

算法-有n步臺階,一次只能上1步或2步,共有多少種走法1、n=0 和 n=1 的時候 並沒有其他可選擇的,所以可以得出f(0)=0;f(1)=1;2、n>=2時情況就變複雜起來,但是這個時候可以操作的步驟也就2種也就是走1步(n-1)與走2

原创 修改Mac的hosts

1.   https://www.ipaddress.com/2.  sudo vi /etc/hosts按i進入編輯模式,輸入文本按esc退出編輯模式,:wq保存退出3.開關一下網絡sudo killall -HUP mDNSRespon