为什么这个片段会导致泄漏?

时间:2014-07-30 10:41:54

标签: ios objective-c memory-leaks uibarbuttonitem reactive-cocoa

我有一个班级方法:

+ (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块也始终报告为已分配。

为什么?

1 个答案:

答案 0 :(得分:0)

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