Alamofire 3.0 - iOS 9.1 上的 EXC_BAD_ACCESS

Posted

技术标签:

【中文标题】Alamofire 3.0 - iOS 9.1 上的 EXC_BAD_ACCESS【英文标题】:Alamofire 3.0 - EXC_BAD_ACCESS on iOS 9.1 【发布时间】:2015-10-29 00:06:02 【问题描述】:

怀疑这是一个普遍存在的问题,但希望有人遇到类似问题时可以提供帮助。

我遇到了这个奇怪的问题,只有在设备上运行我的应用程序时才会出现,Alamofire 在模拟器中运行良好。 在我在设备上升级到 ios 9.1 后开始出现这种情况。

现在,当我在我的设备上测试应用程序时,只要我发出第一个 Alamofire 请求,就会在 defaultHTTPHeaders > acceptLanguage 块下的 var components 行上出现 EXC_BAD_ACCESS(见图)

发出请求的代码是:

Alamofire.request(.GET, "/api/index.php", parameters: ["version": "1"]).responseJSON
            response in
            
            if(response.result.isSuccess)
            ...

Using Breakpoints 表明代码没有前进到 ResponseJSON 方法。

【问题讨论】:

我认为将 [] 更改为 [String]() 会解决它 @horst - 感谢您的帮助,但没有骰子 :( - 这是 Alamofire 3.0 中的一个问题 - 这让我感到惊讶,因为 Github 上没有关于它的未解决问题。 【参考方案1】:

所以我在 Github 上偶然发现了这篇文章: https://github.com/Alamofire/Alamofire/issues/881

事实证明,无论出于何种原因 - 如果这种情况开始发生,您可能需要删除您的 Derived Data 文件夹。

为此,请在此处导航:

~/Library/Developer/Xcode/DerivedData

删除与导致此问题的应用相关的文件夹。 这应该可以解决它!

【讨论】:

我遇到了同样的问题,这对我不起作用。你是如何将你的应用部署到设备上的?只需插入,选择目的地并选择播放? 正确。尝试从您的设备中删除该应用程序,然后运行干净。然后运行。 好的,我试了你说的。从设备中删除应用程序,删除 DerivedData,清理应用程序,重新安装。我仍然遇到同样的错误。 嗯,那么您可能需要提出一个新问题!很奇怪!祝你好运。 似乎是配置问题。我将所有文件迁移到一个新项目,然后运行它,一切正常。这很奇怪,但似乎不像我最初想的那样是图书馆的问题。

以上是关于Alamofire 3.0 - iOS 9.1 上的 EXC_BAD_ACCESS的主要内容,如果未能解决你的问题,请参考以下文章

支持 swift 3.0 和 iOS 8.0+ 的等效 Alamofire 库

Alamofire 与 Swift 3.0 和部署目标 8.0

在 Swift 3.0 (Alamofire 4.4.0) 中的一些请求后,Alamofire 停止工作

Swift 3.0 Alamofire 4.0 - Domain=NSURLErrorDomain Code=-999 “取消”

Alamofire 自定义响应从 Alamofire v1.3 迁移到 3.0(和 Swift 2 语法)

POST 请求 Swift 3.0 Alamofire