不是alloc计数加1 是你将对象赋值给一个strong变量的时候 执行的objc_storeStrong把技术加1
例如你的例子Person *p = [[Person alloc] init];
这里不是alloc加1 而是 = 赋值的时候,可以把这个文件转成汇编一看就知道了 赋值调用了objc_storeStrong
void
objc_storeStrong(id *location, id obj)
{
id prev = *location;
if (obj == prev) {
return;
}
objc_retain(obj);
*location = obj;
objc_release(prev);
}
可能是史上最全面的内存管理文章iOS内存管理 概述 什么是内存管理 应用程序内存管理是在程序运行时分配内存(比如创建一个对象,会增加内存占用)与清除内存(比如销毁一个对象,会减少内存占用)的过程 为什么要...