0
後
我有什麼後臺完成處理程序崩潰的應用程序,如果完成PushViewController
我不理解這個問題的本質。
我有2個視圖控制器:
1)FeedViewController,這表明在實現代碼如下
2)事件EventViewController,當推按事件。
當Feed加載時,它開始異步加載所有事件的所有圖像。 它是由下面的函數對每個事件進行:
EventsManager().loadProfilePictureById(event.profilePictureID as String, currentProgress: event.profilePictureProgress, completionHandler: {
(progress:Double, image:UIImage!, error:NSError!) -> Void in
event.profilePictureProgress = progress
if image != nil {
event.profilePicture = image
}
if (error == nil){
if (self.tableView.headerViewForSection(index) != nil){
var header:eventHeaderView = self.tableView.headerViewForSection(index) as! eventHeaderView
header.updateProfilePicture(
self.eventsManager.events[index].profilePictureID as String,
progress: self.eventsManager.events[index].profilePictureProgress,
image: self.eventsManager.events[index].profilePicture)
}
}else{
println("Error:" + error.description)
}
})
這裏是我推EventViewController:
func PushEventViewController(sender:UITapGestureRecognizer)->Void{
let ViewSender = sender.view!
let selectedRow = ViewSender.tag
//let Cell:HomeEventTableViewCell = TimelineEventTable.cellForRowAtIndexPath(SelectedIndexPath) as HomeEventTableViewCell
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
let VC:EventViewController = self.storyboard?.instantiateViewControllerWithIdentifier("EventViewController") as! EventViewController
VC.event = self.eventsManager.events[selectedRow]
self.navigationController?.pushViewController(VC, animated: true)
})
}
問題
的問題是,如果我按事件在下載圖像之前推動EventViewController(完成處理程序仍在獲取cal導致)它崩潰的應用程序。
假設
我這個奮鬥了幾天,但沒有找到一個解決方案, 但我的假設是所謂的完成處理後當它試圖後執行下面的行
發生崩潰EventViewController被推動:
event.profilePictureProgress = progress
if image != nil {
event.profilePicture = image
}
我假設當新的視圖控制器是推編輯,在完成處理程序中使用的事件對象正在被釋放
如果您遇到了崩潰錯誤消息,請將其發佈,這對您有很大的幫助。或者你可以閱讀:http://blog.manbolo.com/2012/01/23/xcode-tips-1-break-on-exceptions併爲異常設置一箇中斷點,然後你會知道是什麼導致崩潰。 – Surely
@xWhyLikeThis我已經更新了這個問題。 –