【问题标题】:Transitioning an Objective C project to ARC and get rid of multiple app crashes将 Objective C 项目转换为 ARC 并摆脱多个应用程序崩溃
【发布时间】:2015-02-06 06:54:39
【问题描述】:

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

现在我尝试阅读这篇文章以了解更多 Apple Transitioning to ARC release NOte

我发布这个问题是因为我会说我是 iOS 开发的新手,但很快就赶上了。我需要帮助才能让应用程序平稳运行并出现崩溃,因为。我所经历的情况尚不清楚,以至于我必须使用 Instruments 来查看导致应用程序崩溃的确切原因,而在某些时候多次进入应用程序却不会崩溃。当它崩溃时,我只得到这个线程 x 并且真的不知道在哪里调试

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

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

所以我希望有人可以帮助我,因为我完成了整个 ARC 过渡,但仍然存在释放、自动释放错误。我所有的 IUOutlet 都很弱。

这是我留下的 6 个错误,希望应用程序能够正常运行。

【问题讨论】:

  • 那么您的目标是将所有内容都转换为 ARC 吗?您是否解决了每个错误并修复了它?希望你有版本控制...
  • 是的,如果可以避免烦人的崩溃,我想将所有内容都转换为 ARC
  • 你试过Xcode提供的自动转换吗?
  • 请问我在哪里可以找到 Xcode 上的自动转换。
  • 在菜单中搜索arc或者convert,我不记得了

标签: ios crash automatic-ref-counting release retain


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2017-08-04
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多