J'ai une base de données SQL que je peux afficher sur un UITableView. Mais si vous essayez d'ajouter un objet, il n'est pas mis à jour dans UITableView. Il est mis à jour uniquement après le redémarrage de l'application. Lorsque je supprime des objets de UITableView il y a une méthode intégrée qui fait la suppression est if (editingStyle == UITableViewCellEditingStyleDelete)
Y a-t-il des méthodes pour ajouter des objets aussi?objet ajouté non mis à jour dans UITableView en utilisant la base de données SQlite
Mes méthodes d'addition sont les suivantes:
static sqlite3 *addStmt = nil;
- (void) add_Place:(Place *)PlaceObj {
NSLog(@"Super add called");
//Add it to the database.
[PlaceObj addPlace];
//Add it to the coffee array.
[PlacesArray addObject:PlaceObj];
}
- (void) addPlace {
NSLog(@"addplace called");
if(addStmt == nil)
{
NSLog(@"inside addstmt");
const char *sql = "INSERT INTO places_table (PlaceName, PlaceAddress) Values (?,?)";
if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
{
NSLog(@"error inside if loop");
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
}
NSLog(@"outside if Loop") ;
sqlite3_bind_text(addStmt, 1, [PlaceName UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 2, [PlaceAddress UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
{
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));;
}
// NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
else
{
//SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid
PlaceID = sqlite3_last_insert_rowid(database);
NSLog(@"sqlite3_last_insert_rowid") ;
}
//Reset the add statement.
sqlite3_reset(addStmt);
}
appelez-vous reloaddata? – James