2011-02-11 22 views
6

Ho 10.000 righe nella tabella del database. Ho una vista che supponiamo di elencare tutte queste righe in una tableview. Ma caricare tutto in un colpo impiega anni per apparire in tableview.Come implementare "Carica più record" in TableView in iPhone SDK?

Come è possibile utilizzare la funzionalità "Carica più record" che recupera 20 record alla volta? Se l'utente desidera visualizzare più voci, può fare clic sul pulsante "Carica più record" e mostrerà i prossimi 20 record.

Dovrò modificare la mia istruzione di selezione? Quali altri cambiamenti devo fare per raggiungere questo obiettivo?

risposta

5

UITableView riutilizza le sue celle. Ciò significa che puoi accedere dinamicamente al tuo database quando viene chiamato cellForRowAtIndexPath:- non hai bisogno di caricare tutti i 10000 elementi contemporaneamente, né dovresti. Spero che questo aiuti, e che non sto fraintendendo la tua domanda.

Questo è roba UITableView piuttosto semplice, ma dovrebbe iniziare. Mi spiace di non sapere molto su Core Data o SQLite.

- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
      cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell-iPad" owner:self options:nil] lastObject]; 
     } 
     else{ 
      cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject]; 
     } 
    } 


// Do stuff, load database values, etc 

    return cell; 
} 
+0

quindi come sarebbe il codice di esempio? Puoi mostrarmi per favore? – meetpd

+0

@meetpd sicuro, ma vorrei passare un po 'di tempo con il riferimento di classe: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html – jakev

0

@meetpd non è una risposta solo un suggerimento.

È possibile utilizzare core data anziché sqlite. soddisferà le tue esigenze di recupero di 20 record. Ridurrà il codice base al 40% (come affermato da Bard Larson nello sviluppo di App Advance Iphone). È facile da usare e più veloce di sqlite. Puoi controllare il codice di esempio in questo modo: enter image description here

spero che questo ti possa aiutare moltissimo nella codifica.

+0

@meetpd: hai provare sopra i passaggi? – kanmani