iOS Zombie Objects 原理探索 Zombie Object 有什么用 僵尸對象一種用來檢測內存錯誤(EXC_BAD_ACCESS)的對象,它可以捕獲任何對嘗試...

iOS Zombie Objects 原理探索 Zombie Object 有什么用 僵尸對象一種用來檢測內存錯誤(EXC_BAD_ACCESS)的對象,它可以捕獲任何對嘗試...
@夢隨興飛 只允許特定域名的請求?
iOS 中對 HTTPS 證書鏈的驗證這篇文章是我一邊學習證書驗證一邊記錄的內容,稍微整理了下,共扯了三部分內容: HTTPS 簡要原理; 數字證書的內容、生成及驗證; iOS 上對證書鏈的驗證。 HTTPS 概...
一、前言 作為移動開發者的我們,為了良好的用戶體驗,經常需要模擬手機應用在比較差的網絡環境下的表現,模擬網絡環境的方式有很多,比如使用Charles,或者在手機的開發者模式下...
真想認識下你們的美女 超哥
iOS對HTTPS證書鏈的驗證本文由我們團隊的美女 超哥 分享 HTTPS從最終的數據解析的角度,與HTTP相同。HTTPS將HTTP協議數據包放到SSL/TSL層加密后,在TCP/IP層組成IP數據報去...
本文列舉的不是查找 iOS 應用內存問題的必要流程,只是講述筆者在干這檔子事兒的時候,可能會用到的手段而已。?? Clang Static Analyzer 在應用運行起來之前...
說起實時模糊,最先想到的就是 iOS 7 中的 UIToolBar 和 iOS 8 中的 UIVisualEffectView,這兩玩意兒的優點很明顯,那就是快。美中不足的是...
ARC 即為 “automatic reference counting”,相比 MRR,主要區別在于是人為還是編譯器插入與內存管理相關的語句。此文只會記錄 ARC 的內存管...
上一篇依靠 objc-runtime 的源碼學習了引用計數的原理和具體實現,但并沒有解釋內存管理法則第二條中的“非自己生成的對象”是如何被釋放的。要想回答這個問題,必須了解 ...
@ZeroJ 你說的 ABCD 的那個例子確實不是 atomic 要管的情況,而我描述的是 setter 函數返回前在 `objcRelease(oldValue)` 處可能出現的競態條件。你這么一說我才發現,我們討論的分歧在于什么才是調用函數的正確結果:我理解的是 setter 返回時對于當前線程來說被正確賦值,而你說的應該是在 setter 中實現賦值則為正確?關于這個我沒找到什么嚴格定義,當做是交換下意見罷了。
iOS開發幾年了,你清楚OC中的這些東西么!!!?前言 幾年前筆者是使用Objective-C進行iOS開發, 不過在兩年前Apple發布swift的時候,就開始了swift的學習, 在swift1.2發布后就正式并且一直都...
@ZeroJ 最后一行,結果是不正確的,少了 “不” 字。
iOS開發幾年了,你清楚OC中的這些東西么!!!?前言 幾年前筆者是使用Objective-C進行iOS開發, 不過在兩年前Apple發布swift的時候,就開始了swift的學習, 在swift1.2發布后就正式并且一直都...
@ZeroJ 原子性代表操作的不可分割。我認為的線程安全函數:假設單線程中調用某個函數產生的結果為正確結果,那么在多線程中被重復調用也總能產生正確的結果的函數,是線程安全的。以 objc runtime 中的 `static inline void reallySetProperty(id self, SEL _cmd, id newValue, ptrdiff_t offset, bool atomic, bool copy, bool mutableCopy)
` 的實現為例, 自旋鎖僅保證 `oldValue = *slot; *slot = newValue;` 這一塊代碼的寫安全,粒度較小。之后在對舊值的釋放過程中仍有可能切換到到其他線程的 setter 中去,那么原來線程的 setter 返回時結果就正確了,所以我認為 setter 并非線程安全。
iOS開發幾年了,你清楚OC中的這些東西么!!!?前言 幾年前筆者是使用Objective-C進行iOS開發, 不過在兩年前Apple發布swift的時候,就開始了swift的學習, 在swift1.2發布后就正式并且一直都...
Atomic 只保證屬性的讀和寫是原子的,但并不是線程安全(無論是函數還是類)。
iOS開發幾年了,你清楚OC中的這些東西么!!!?前言 幾年前筆者是使用Objective-C進行iOS開發, 不過在兩年前Apple發布swift的時候,就開始了swift的學習, 在swift1.2發布后就正式并且一直都...