База данных Sqlite и проведите для удаления - PullRequest
0 голосов
/ 09 января 2011

В проекте, над которым я работаю, мне потребовалось использовать базу данных sqlite, и я пытался получить свайп для удаления, чтобы работать с моим tableView:

[self performSelectorOnMainThread:@selector(removeMovieFromCache:) withObject:[NSNumber numberWithInt:movieId] waitUntilDone:YES];
    [db performSelectorOnMainThread:@selector(performQuery:) withObject:[NSString stringWithFormat:@"DELETE FROM movie WHERE id = %d", movieId] waitUntilDone:YES];
    [db performSelectorOnMainThread:@selector(performQuery:) withObject:[NSString stringWithFormat:@"DELETE FROM new_movies WHERE new_movie_id = %d", movieId] waitUntilDone:YES];
    [self removeMovieFromCache:movieId];
    [db performQueryWithFormat:@"DELETE FROM movie WHERE id = %d", movieId];
    [db performQueryWithFormat:@"DELETE FROM new_movies WHERE new_movie_id = %d", movieId];
    [db performQuery:@"COMMIT"];

Это код, чтобы избавиться от чего-то из моей базы данных. Когда я пытаюсь применить это к моему удару, команда удаления:

-

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)movieID
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {        

      //code goes here        
    }
}

Просто не хочет работать, что я делаю не так?

1 Ответ

2 голосов
/ 09 января 2011

В вашем источнике данных tableView попробуйте реализовать это:

(UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath 
{
   return UITableViewCellEditingStyleDelete;
}


(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{
   return YES;
}

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)movieID
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {       
       // First delete the row from the table, then delete from the DB, finally reload the date in the table 
       [theTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationRight];
       // code to delete from DB
       [theTable reloadData];        
    }
}

(замените "таблицу" на то, что вы называете своим столом!)

...