У меня есть база данных SQL, которую я могу отобразить в UITableView.Но если попытаться добавить какой-либо объект, он не обновляется в UITableView.Обновляется только после перезапуска приложения.Когда я удаляю объекты из UITableView, есть встроенный метод, который выполняет удаление: if (editingStyle == UITableViewCellEditingStyleDelete)
. Есть ли такие методы для добавления объектов?
Мои методы добавления следующие:
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);
}