不是alloc計(jì)數(shù)加1 是你將對(duì)象賦值給一個(gè)strong變量的時(shí)候 執(zhí)行的objc_storeStrong把技術(shù)加1
例如你的例子Person *p = [[Person alloc] init];
這里不是alloc加1 而是 = 賦值的時(shí)候,可以把這個(gè)文件轉(zhuǎn)成匯編一看就知道了 賦值調(diào)用了objc_storeStrong
void
objc_storeStrong(id *location, id obj)
{
id prev = *location;
if (obj == prev) {
return;
}
objc_retain(obj);
*location = obj;
objc_release(prev);
}
可能是史上最全面的內(nèi)存管理文章iOS內(nèi)存管理 概述 什么是內(nèi)存管理 應(yīng)用程序內(nèi)存管理是在程序運(yùn)行時(shí)分配內(nèi)存(比如創(chuàng)建一個(gè)對(duì)象,會(huì)增加內(nèi)存占用)與清除內(nèi)存(比如銷毀一個(gè)對(duì)象,會(huì)減少內(nèi)存占用)的過(guò)程 為什么要...