我正在尝试将现有的非 ARC 项目移至 ARC。我已将构建设置中的 Objective-C 自动引用计数标志设置为 YES。
这当然造成了很多关于发送显式释放/自动释放消息的错误。对于我的代码中的错误,我删除了显式发布消息、dealloc 块等。对于在第三方库(如 ASIHTTPRequest)中生成的错误,我在 Build Phases - Compile Sources 中为所需文件添加了 -fno-objc-arc 标志部分。
但是,在我修复了所有错误(并且项目编译成功)之后,我的代码中仍然有发布声明。
例如,在应用程序委托中,我使用以下内容:
self.loginViewController = [[LoginViewController alloc] init];
self.window.rootViewController = self.loginViewController;
[self.window makeKeyAndVisible];
[self.loginViewController release];
现在据我了解,这应该引发错误。但事实并非如此。该应用程序按预期工作,但给我留下了关于这些文件中是否正确完成内存管理的问题。
AppDelegate.m 和 LoginViewController.m 都没有设置 -fno-objc-arc 标志,因此它们应该默认为 ARC。
肯定我做错了什么。我应该仔细检查什么?
提前致谢。