关于引用计数问题

@interface ViewController ()

@property ( strong , nonatomic ) WeakView * weakView;

@end



    WeakView * view = [[WeakView alloc]init];
    [self.view addSubview:view];
    self.weakView = view;
    NSLog(@"count: --- %ld",CFGetRetainCount((__bridge CFTypeRef)_weakView));
    NSLog(@"count: --- %ld",CFGetRetainCount((__bridge CFTypeRef)self.weakView));

为什么打印是3和4

self.weakView

等效于如下代码:

- (WeakView *)weakView
{
    return [[_weakView retain] autorelease];
}

下个循环回来就回到 3 了

我理解的是 WeakView* + 1,addSubView + 1,然后self.weakView = view是 strong 的再 +1,所以是 3 ……至于为什么是 4 是楼上说的吧~

  • iOS 同事写的创建代码的形式有点不认识
  • 美团手机app中城市名称旁边的符号是哪个怎么打出来?
  • 关于ios GCD global_queue
  • 在ViewDidLoad 里添加UIButton的点击事件,不能触发。
  • iOS应用在接听电话时UI下移,怎么处理
  • 我的App需要做好友邀请的功能,怎么破?
  • 代码实现类似设置界面,是这样做吗?
  • 怎样设置让iPhone浏览器打开我网站的时候自动弹出“添加到主屏幕”
  • iOS 抽象工厂什么时候用
  • SegmentedControl大家用原生的UISegmentedControl 还是自定义的?
  • ios webview进行 loadRequest的时候,有时候不执行webViewDidFinishLoad方法