2015-09-05 122 views
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 
         } 

我假設當新的視圖控制器是推編輯,在完成處理程序中使用的事件對象正在被釋放

+1

如果您遇到了崩潰錯誤消息,請將其發佈,這對您有很大的幫助。或者你可以閱讀:http://blog.manbolo.com/2012/01/23/xcode-tips-1-break-on-exceptions併爲異常設置一箇中斷點,然後你會知道是什麼導致崩潰。 – Surely

+0

@xWhyLikeThis我已經更新了這個問題。 –

回答

1

發現問題出在哪裏,問題是變量event.profilePictureProgress被聲明爲動態變量(我將利用它來添加觀察者它之後)。