[英]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.