NSMutableArray befüllen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSMutableArray befüllen

    Guten Abend,

    als Testprojekt bin ich gerade an einer SQLite-gestützten Datenbank App dran.

    Ich benutze "fmdb" (github.com/ccgus/fmdb) für das SQLite Handling.

    Für eine Datenbankabfrage gibt es folgende Query:

    Quellcode

    1. FMResultSet *rs = [self.db executeQuery:@"select date from times where date >= ? AND date <= ?", [dateFormatter stringFromDate:startDate], [dateFormatter stringFromDate:lastDate]];


    Die Query ansich funktioniert auch. Die Ergebnisse möchte ich in ein NSMutableArray reinschreiben:

    Quellcode

    1. NSMutableArray *array = [[NSMutableArray alloc] init];
    2. while ([rs next]) {
    3. [array addObject:[rs stringForColumn:@"date"]];
    4. };
    5. NSLog(@"%@", array);



    Das Array wird auch im Konsolenfenster angezeigt. Danach schmeißt er aber sofort eine "NSRangeException":

    Quellcode

    1. 2012-02-12 22:26:47.812 SQLiteDb[5318:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 5 beyond bounds [0 .. 4]'



    Habe schon gelesen, dass eventuell ein Index nicht gefüllt ist, kann aber nicht sein, da folgendes im Debugfenster ausgegeben wird:

    Quellcode

    1. 2012-02-12 22:26:47.784 SQLiteDB[5318:707] (
    2. "2011-03-31",
    3. "2011-03-30",
    4. "2011-03-28",
    5. "2011-03-29",
    6. "2011-04-20"
    7. )



    Ich bedanke mich im Voraus für die Hilfe :)
  • patstylez schrieb:

    Hab das schon gesehen, konnte damit aber nichts anfangen

    Deshalb habe ich die Erklärung ja noch mal nachgereicht. Für's nächste Mal. ;)

    patstylez schrieb:

    da ich dachte, die Exception würde beim Schreiben des Arrays geworfen.

    Das kannst Du auch aus der Fehlermeldung sehen. In den eckigen Klammern steht ja der Methodenaufruf (hier: objectAtIndex: ), der die Exception verursacht hat.

    Michael