我将一个项目重构为ARC。它看起来很好,但有一个使用通知中心的对象。我在自定义的dealloc方法中删除了观察者。这在非ARC项目中运行良好。它也适用于ARC,但我收到了一个疯狂的警告:“方法可能会丢失[super dealloc]调用。”在一个ARC项目中,当方法结束时它会自动完成。更好:我不能在ARC项目中调用它!这必须是一个XCode错误,对吗?这里是我的代码:“在ARC项目中丢失[super dealloc]”警告
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
// [super dealloc]; will be called automatically
}
我总是想编写不会发出警告的代码。有没有解决这个黄色感叹号的方法?
不应该有任何的警告,因为你嫌。你确定你正确关闭ARC吗? – DrummerB
我把ARC打开了!我使用了Edit/Refactor/Convert to Objective-C ARC ...菜单。 –
确保在没有ARC支持的情况下不会构建特定的实现文件 - 请检查Build-Phases->编译源代码。 – Till