看開源的objc源碼有class的方法
+ (Class)class {
return self;
}
- (Class)class {
return object_getClass(self);
}
然后明白object_getClass是獲取isa,其實object_getClass(obj)與[obj class]的區別了,就兩點:
1、如果是obj實例對象,他們一樣;
2、如果是類對象,class是self,object_getClass是isa

看開源的objc源碼有class的方法
+ (Class)class {
return self;
}
- (Class)class {
return object_getClass(self);
}
然后明白object_getClass是獲取isa,其實object_getClass(obj)與[obj class]的區別了,就兩點:
1、如果是obj實例對象,他們一樣;
2、如果是類對象,class是self,object_getClass是isa
layer的光柵化可以將繪制完的位圖緩存下來以減少GPU壓力,在合適的時機使用效果十分顯著layer.shouldRasterize = true 關于光柵化的基礎知識不了...
在iOS11, iOS12上UITextView會有個奇怪的動畫?? 這個動畫看起來很難受,特別是文本比較多的時候,所以還是把它去除掉吧?? 解釋: 在合適的地方去實現一下UIT...
Runtime系列文章 Runtime原理探究(一)—— isa的深入體會(蘋果對isa的優化)Runtime原理探究(二)—— Class結構的深入分析Runtime原...
id objc_msgSend(id theReceiver, SEL theSelector, ...) id objc_msgSendSuper(struct objc_...
這個系列文章一共有10篇, 涵蓋了GCD和Operation的使用和注意點。 前置知識: Swift 適讀人群: 對多線程開發只知其名 知道多線程但不了解細節 不了解Oper...
Thread Sanitizer(TSan, 線程消毒劑???), 是LLVM里Apple提供檢測多線程開發中可能存在的資源競爭情況的工具。不過它只能在模擬器上運行。 除了TS...
在諸如用戶離開當前頁面的情況下,還沒有完成的網絡加載可能就不需要繼續完成了,這時候就可以通過cancel來取消正在進行中的Operaiton了 被cancel的Operati...
Dependency可以實現 Operation等待先決條件達到再運行 Operation從其它Opration拿到值而且Operation的多任務依賴會比GCD的代碼更簡潔...
在上一篇例子中我們實現的是Operation是同步的,本篇將著重介紹異步實現。 Operation的狀態是完全由底層自動管理的只讀屬性,正常情況下,Operation在結束m...
Operation支持以下三種添加任務的方式 傳Operation 傳閉包 傳Operation數組 Operation管理 OperationQueue會根據QoS優先級以...
從使用場景來說,Operation與GCD最大的區別在于__ 面向對象的Operation可以很好的復用代碼__。所以如果你的多線程開發的代碼是只用執行一次就結束了的話還是用...
多線程并發有三個比較突出的問題, 資源競爭 死鎖 優先級倒置 1. 資源競爭 在不同線程的同時想要更新一個變量,而讀寫是分開的,那么就可能會出現資源競爭的情況。CPU是基于時...
這時候我們就可以用DispatchGroup來處理 DispatchGroup 基礎使用,追蹤不同隊列中的任務。 不同隊列可以用來分別處理不同優先級的任務 wait 上述代碼...
一個App是 一個進程,一個進程擁有 多個線程。GCD隊列負責分配任務到不同的線程上。 多線程的優點: 運行更快. 多線程可以并發處理任務,速度比串行更快 響應. 如果全部任...
1. 術語 同步和異步 在同步隊列里的任務,下一個任務會在當前任務 執行完成之后 再執行。 在異步隊列里的任務,下一個任務會在當前任務 開始之后 就執行。 同步任務會阻塞當前...
參考教程 參考資料已經非常詳細,請參考它來完成,本文略作補充此外,如果真的無法配置好Git環境,也可以每次寫完文章hexo g然后把生成的public文件夾ftp到服務器上,...
當UITextfield的設置為密碼模式的時候,再次輸入也就是重新becomFirstResponder的時候便會清空當前內容 如何才能使密碼不清空? 解決方案:在子類中重寫...
pip安裝遇到下載速度特別慢甚至請求超時錯誤的“.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted...