Block的分類 Block有三種類型:全局Block,堆區(qū)Block,棧區(qū)Block 全局Block 當(dāng)Block沒有引用到局部變量時(shí)或者Bl...
上篇文章介紹synchronized鎖,今天介紹的是其他常用鎖:NSLock,NSRecursiveLock ,NSCondition,NSCo...
iOS中有哪些鎖呢? OSSpinLock,dispatch_semaphore_t,os_unfair_lock,pthread_mutex_...
線程和進(jìn)程的區(qū)別 進(jìn)程:每個(gè)進(jìn)程都有獨(dú)立的代碼和數(shù)據(jù)空間(進(jìn)程上下文),進(jìn)程間的切換會(huì)有較大的開銷,一個(gè)進(jìn)程包含1--n個(gè)線程。(進(jìn)程是資源分配...
load和initialize方法的調(diào)用原則和調(diào)用順序? load方法的調(diào)用時(shí)在dyld加載程序的時(shí)候調(diào)用,在main函數(shù)之前,調(diào)用順序:父類,...
上篇文章講了類是如何加載的,但是我們只看到了類里面的方法,屬性和協(xié)議的加載,并沒有看到分類加載,這篇文章介紹分類的加載。 分類加載 1. 分類的...
上篇文章我們已經(jīng)了解到objc_init調(diào)用_dyld_objc_notify_register注冊了load_image,load_image...
本篇文章主要是探索程序啟動(dòng)流程。 load方法斷點(diǎn) 首先我們來個(gè)簡單程序 通過打印我們知道+load > c++構(gòu)造函數(shù) > main接下來我們...
cache的獲取 通過名字我們猜測cache應(yīng)該是緩存,但是到底是緩存了什么呢?這個(gè)就需要探索了首先獲取cache,通過之前的篇章我們知道,要獲...