2012-05-04 60 views
0

我在動作表上有兩個按鈕,當我點擊其中一個按鈕時,它會在另一個視圖中顯示所有學生的記錄。所有這些記錄都需要從數據庫中檢索。目前我把檢索記錄的邏輯放在viewwillAppear方法中,但是當我點擊按鈕後,屏幕凍結了幾秒鐘,然後顯示學生列表。我應該怎樣把邏輯從數據庫中獲取記錄?

根據我的理解,我的邏輯檢索記錄是在viewWillAppear方法的學生列表視圖中。點擊按鈕後,應直接進入學生列表視圖,然後在學生列表視圖中嘗試加載數據。但是現在,當我點擊按鈕後,爲什麼它在操作表中凍結了?或者是否有其他地方可以將加載記錄邏輯放入,以便它不會在之前的操作表中凍結當我單擊按鈕後。

回答

0
  1. 如果你打算髮布到SO,你總是應該包括你現有的代碼。我建議你相應地更新你的問題。請參閱FAQ

  2. 當你說它「凍結」時,我推斷你說在你看到你的新數據視圖之前有一個延遲,但它最終出現了嗎?如果是這樣,你的任務是如何確定延遲發生的地點。所以,我建議你開始在各種方法中插入NSLog語句,以便確定延遲發生的位置。新視圖加載需要很長時間嗎?對於要檢索的數據?等等直到你縮小問題的範圍,找出延遲的來源,你將無法解決它。您需要培養診斷和解決問題的技能。順便說一下,如果你在確定如何診斷代碼時遇到問題,並且NSLog不起作用,那麼你也可以通過你的代碼參考Apple的文檔debugging and stepping。您應該只在將代碼精確限定在問題所表現出來的範圍內後才發佈。第三,大多數人在viewDidLoad中加載其新數據的數據,而不是viewWillAppear;如果你曾經去過你的學生列表視圖的子視圖然後回到你的學生列表(即學生列表視圖再次出現,即viewWillAppear將再次觸發),那麼你是否真的想重新加載數據,即使你已經加載了嗎?可能不會。我知道,在加載學生列表視圖後,您可能沒有看到另一個視圖,但最終可能會(例如,學生詳細信息視圖),所以最好的做法是應該將視圖的數據加載到viewDidLoad中(這會僅在第一次加載視圖時觸發)。

相關問題