虽然用了很久的ARC,感受了代码简洁。但是对ARC底层实现并不了解。
今天抽空研究了下,做些简单地总结。
一、__strong
1.局部变量
①.对于局部变量来说,在超出作用域的地方由编译器自动插入release。
{
id__strong objc = [NSObject new];
}
==>> (大概转化为)
{
id objc =objc_msgSend(objc_getClass("NSObject"),@selector(new));
objc_release(objc);
}
②.在非ARC返回的autorelease类型的方法
{
id__strong objc = [NSMutableArray array];
}
==> (在Blog手码大概代码,如有错误还望指出)
{
id objc =