2009-11-23 52 views
0

在我的(很簡單)的應用程序,iPhone:如何在應用程序加載的某個時間預加載數據,只是awakeFromNib方法之後

- >我有一子視圖(名爲「潑水節」)裝入主鑑於在啓動時,像這樣(在我的MAINVIEW類):

-(void)awakeFromNib{ 
[self addSubview:splash]; 
} 

- >我也有一個UITableView(命名爲「myTable的」)通過點擊一個按鈕(它調用名爲IBAction爲裝「LoadData:」 )在子視圖「飛濺」。 (所有視圖都在interfaceBuilder中生成,每個視圖在xCode項目中都有相應的類)

我想要做的是從SQLite數據庫預加載(緩存)大量數據(750個條目)我加載第二個子視圖(「myTable」),它使用存儲在數組中的這些數據。

要執行此操作,我有一個名爲「RefreshData:」的方法,它在某個時間被調用以將結果存儲在數組中。 此數組用於UITableView中顯示此數據。 所有完美運行良好,但是......

  • 如果我叫在「MAINVIEW」類「awakeFromNib」方法結束「RefreshData」的方法,我的應用程序需要15秒鐘才能顯示第一屏幕(名爲「splash」):不好。
  • 如果我在IBAction「LoadData」中調用「RefreshData」,UITableView需要13秒纔會出現在屏幕上:不是很好。

所以,問題是: 是有辦法叫「RefreshData法」第一子視圖(「撲通」)後也出現在屏幕上,而之前它加載的UITableView按鈕用戶點擊?

任何幫助將不勝感激,請爲我的壞英語道歉!

回答

0

嘗試調用refreshData稍後在

-(void) viewDidAppear: 

也即如果SQL請求被鎖定了,你也許應該考慮一下在一個新的線程把數據關閉(雖然我認爲SQL這樣做)的GUI

+0

下襬... 好的,但是,我必須在哪裏放置此方法? 其實,我的應用程序中沒有viewController。所以我試圖添加一個,將它連接到「Splash」子視圖,並添加到Splash類的實現中: - (void)viewDidAppear:(BOOL)animated { [mainView refreshData]; } 什麼也沒有發生...... :-( 有什麼不對? – Chrysotribax 2009-11-23 14:51:11

+0

不它在所有被調用?我覺得應該是[自refreshData]如果該方法是VC之內。 – Chris 2009-11-23 16:09:10

+0

沒有,什麼也沒有發生,即使使用NSLog調用。 我會嘗試將refreshData放入VC中。 – Chrysotribax 2009-11-23 16:35:57

相關問題