2011-01-09 4 views
0

Das Projekt arbeite ich an löschen musste ich eine SQLite-Datenbank zu verwenden, und ich habe versucht, Swipe kennen zu löschen, die auf meinem Tableview zu arbeiten:SQLite-Datenbank und Swipe

[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"]; 

Das ist die Code, um etwas aus meiner Datenbank zu entfernen. Wenn ich versuche, dies zu meinem Swipe anwenden Befehl zu löschen:

- 

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

     //code goes here   
    } 
} 

Es will einfach nicht funktionieren, was mache ich falsch?

+0

ich habe aber nicht in diesem Stil von: „Tableview : commitEditingStyle: forRowAtIndexPath: "ich habe verwendet" - (void) tableView: (UITableView *) tableView commitEditingStyle: (UITableViewCellEditingStyle) editingStyle forRowAtIndexPath: (NSIndexPath *) indexPath "ect aber ich habe nicht das letzte, wie sollte ich sie umsetzen? –

Antwort

2

In Ihrer Tableview Datenquelle, versuche diese Umsetzung:

(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];   
    } 
} 

(ersetzen „thetable“ mit was auch immer Sie Ihren Tisch genannt haben!)