将 Objective C 项目转换为 ARC 并消除多个应用程序崩溃

Transitioning an Objective C project to ARC and get rid of multiple app crashes

我花了几天时间开发我朋友去年在 iOS 8 和 Xcode 6+ 发布之前开发的应用程序。他使用了多个库,如 PMCalender、FXforms、MyBlurIntroductionView、CCPickerView、SWRevealTableView 等,我添加了 MBProgressHUD。现在,在应用程序 运行ning 没有崩溃之前,或者现在,我在进一步研究应用程序遇到的问题后了解到。我相信由于内存泄漏,该应用程序有多个。我在修改代码之前阅读了他的代码,只是注意到他放置了编译源,即 -fno-objc-arc 或 fobjc-arc。大约一天前,在出于某种原因尝试集成 SPGooglePlaceAutocomplete 之后,我不得不从构建设置中禁用 Objective-C ARC,然后整个项目构建时出现很多错误。我不得不在某些头文件中将弱对象更改为强对象等等。

现在我试着阅读这篇文章以加深理解Apple Transitioning to ARC release NOte

我发布这个问题是因为我会说我是 iOS 开发的新手,但赶上来的速度非常快。我需要帮助才能拥有一个流畅的 运行ning 应用程序,因为它会崩溃。我所遇到的情况尚不清楚,以至于我不得不使用 Instruments 来准确查看导致应用程序崩溃的原因,而在某些时候多次进入该应用程序它不会崩溃。当它崩溃时,我得到这个唯一的线程 x 并且真的不知道在哪里调试

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

添加了 MapKit,登录屏幕后的第一件事就是缩放到用户当前位置。我使用 Instruments 查看应用程序发生了什么的原因是因为我怀疑 CoreLocation 可能导致连接到远程 CCLocationManager 服务崩溃。正如我注意到我的 phone 需要时间来打开 gps,即使我总是请求位置,它也不会一直保持打开状态 [self.locationManager requestAlwaysAuthorization];

所以我希望有人能帮助我,因为我完成了整个 ARC 转换,但仍然有发布、自动发布错误。我所有的IUOutlet都很弱。

以下是我删除的 6 个错误,希望应用程序 运行 正常。

我这就是我的问题的答案,经过长时间的搜索和调试,可以对其他人有所帮助。

http://www.daveoncode.com/2011/10/24/migration-to-arc-automatic-reference-counting-using-xcode-4-2-refactor/