在我的應用上實現緩存時,我發現可靠的崩潰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是一個包含上面代碼的項目,每次啓動時都會崩潰,如果這有助於任何人進行調試。