2016-04-29 8 views
0

Ich habe mehr als 10000 Datensätze in der Datenbank. Ich möchte es in einer Tabellenansicht laden. Es dauert 3 bis 4 Sekunden, alle Daten aus der Datenbank abzurufen und dann in der Tabellenansicht zu laden. Gibt es eine effizientere Möglichkeit, die Antwort zu erhöhen und die Daten in einer uitableview zu laden? Hier ist mein Code für alle Daten erhalten fro DatenbankLaden Sie eine große Anzahl von Daten von SQLite db

- (void)getAllData { 
    NSString * convertInttoStr = [NSString stringWithFormat:@"%d", rowNumber]; 
    // Getting the database path. 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *docsPath = [paths objectAtIndex:0]; 
    NSString *dbPath = [docsPath stringByAppendingPathComponent:@"iandroidquran_database 3.sqlite"]; 

    FMDatabase *database = [FMDatabase databaseWithPath:dbPath]; 
    [database open]; 
    NSString *sqlSelectQuery = [NSString stringWithFormat: 
           @"SELECT * FROM qSurahContent WHERE surahID=%@" , 
           convertInttoStr]; 


    // Query result 
    FMResultSet *resultsWithNameLocation = [database executeQuery:sqlSelectQuery]; 
    while([resultsWithNameLocation next]) { 
     NSString *strID = [NSString stringWithFormat:@"%d",[resultsWithNameLocation intForColumn:@"surahID"]]; 
     NSString *strName = [NSString stringWithFormat:@"%@",[resultsWithNameLocation stringForColumn:@"surahContentArabic"]]; 

     NSLog(@"surahID = %@, surahName = %@",strID, strName); 
     [surahId addObject:strID]; 
     [surahContentArabic addObject:strName]; 


    } 
    [self.tblView reloadData]; 

    [database close]; 
} 

Jede Lösung ?? Dank

Antwort

0

versuchen, Daten aus DB in Hauptthread wie folgt zu holen:

dispatch_async(dispatch_get_main_queue(), ^{ 

    [self getAllData]; 

}); 

Das Hauptthread hoher Priorität hat und wird schneller ausgeführt als je zuvor. Also versuche dieses hier.

Hoffe es hilft ..

+0

funktioniert nicht ... gleiche Reaktionszeit – salmancs43

Verwandte Themen