繁体   English   中英

为什么此代码段会导致泄漏?

[英]Why does this snippet cause a leak?

我有一个类方法:

+ (UIBarButtonItem*)navItemWhichAddsNewAction{
    UIBarButtonItem* addActionButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_add"] style:UIBarButtonItemStylePlain target:nil action:nil];
    addActionButton.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
        return [RACSignal empty];
    }];
    return addActionButton;
}

然后,在–viewDidLoad ,将该方法的结果分配给navigationItem的右键:

self.navigationItem.rightBarButtonItem = [MyClass navItemWhichAddsNewAction];

如果我随后使用Instruments分析应用程序,则即使释放视图控制器(和导航控制器),上述rac_command块也始终报告为已分配。

为什么?

信号未完成,因此可能引起泄漏。 另一个副作用可能是由于该原因第二次不调用该操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM