在我的应用上实现缓存时,我发现可靠的崩溃EXC_BAD_ACCESS
。我使用2个豆荚(Alamofire,HanekeSwift)在约50行代码中重新创建了一个新项目的情况,并且每次都崩溃。访问嵌套完成块时发生崩溃 - EXC_BAD_ACCESS
所有我做的是在我的ViewController,调用缓存GET:
CachingManager.sharedInstance.fetchAllThings({
result in
// result should be an array of objects
print(result)
})
和CachingManager的fetchAllThings
方法是:
func fetchAllThings(completion: ([AnyObject] -> Void)?) {
let fetcher = CustomFetcher<JSON>(key: "HELLO")
fetcher.fetch(failure: {
error in
print(error)
}, success: {
json in
completion?(json.array)
})
}
现在,上述发现是作为这样的CustomFetcher
:
override func fetch(failure fail: ((NSError?) ->()), success succeed: (JSON) ->()) {
let endpoint = "www.google.com"
Alamofire.request(.GET, endpoint, parameters: nil, encoding: .URL, headers: nil)
.responseJSON {
(data) -> Void in
self.onReceiveData(data.data!, failure: fail, success: succeed)
}
}
private func onReceiveData(data: NSData, failure: ((NSError?) ->()), success: (JSON) ->()) {
success(JSON.Array(["HI"])) <--- CRASH HAPPENS HERE
}
我收到一个EXC_BAD_ACCESS
试图运行我的onReceiveData
中的success
块。
我做错了什么?这是一个Swift问题吗?这是我用的豆荚问题吗?
作为参考,linked是一个包含上面代码的项目,每次启动时都会崩溃,如果这有助于任何人进行调试。