Iphone 表重新加载数据不工作

Iphone 表重新加载数据不工作,iphone,ipad,iphone-sdk-3.0,Iphone,Ipad,Iphone Sdk 3.0,我使用以下代码从tableview以及db中删除一行, 该行立即从数据库中删除,但在我返回并使用chk aggain之前,它不会从tableview中删除,我希望当我删除该行时tableview应该重新加载数据。。。 有什么想法吗 -(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPat

我使用以下代码从tableview以及db中删除一行, 该行立即从数据库中删除,但在我返回并使用chk aggain之前,它不会从tableview中删除,我希望当我删除该行时tableview应该重新加载数据。。。 有什么想法吗

-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [self.table beginUpdates];

  if (editingStyle == UITableViewCellEditingStyleDelete) 
  { 
    Hadits *delHadit = [self.allBookMarks objectAtIndex:indexPath.row];
    dbAccess *dbmethods = [[dbAccess alloc] init]; 
    NSInteger delHaditid = delHadit.haditid;
    [dbmethods deleteBookMark:delHaditid];
    [dbmethods release];    
  }
  [self.table reloadData];//its not working reload data...
  [table endUpdates];
}

什么是
self.table
?它是您的
UITableView
的类变量吗?您应该注意,您还可以直接引用
UITableView
,因为它作为
tableView
传递到该方法中。我不知道您的
变量是否设置不正确(通过Interface Builder)或其他什么,但我会尝试使用
表视图
变量。

包括这一行

[self.allBookMarks removeObjectAtIndex:indexPath.row];
编辑:

问题不在于重新加载数据,而在于您没有更新数据源(self.allBookMarks)。将值更新为self.allBookMarks,然后重新加载表

编辑的代码

-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [self.table beginUpdates];

  if (editingStyle == UITableViewCellEditingStyleDelete) 
  { 
    Hadits *delHadit = [self.allBookMarks objectAtIndex:indexPath.row];
    dbAccess *dbmethods = [[dbAccess alloc] init]; 
    NSInteger delHaditid = delHadit.haditid;
    [dbmethods deleteBookMark:delHaditid];
    self.allBookMarks = [dbMethods getAllBookMarks]; 
    [dbmethods release];    
  }
  [self.table reloadData];//its not working reload data...
  [table endUpdates];
}

是的,这是UITableView的my class变量,在nib文件中,表被分配(移交)到class variable table…不,先生,它不工作,它使应用程序崩溃,然后再添加此my app delting数据。。但是当我添加这段代码时,它停止这样做了,还有其他想法吗?我想你刚才引用了其他数组到allBookmark,就像这样,allBookMarks=someArray,如果你从allBookmark中删除对象,它也会从someArray中删除。同样,allBookMarks=[someArray-retain];然后你不会得到任何崩溃。-(void)deleteBookMark:(NSInteger)delBookMarkId{NSString*sql=[NSString stringWithFormat:@“从tbl_书签中删除,其中bmark_hadit_id=%d”,delBookMarkId];const char*query=[sql UTF8String];sqlite3_stmt*resultset;int sqlResult=sqlite3_prepare\u v2(databaseref,query,-1,&resultset,NULL);if(sqlResult==SQLITE_OK){if(sqlite3_步骤(resultset)){//OK…}}else{NSLog(@“数据库问题”);NSLog(@“%d”,sqlResult);}这段代码可以正常工作,因为它正在从数据库中挖掘数据,但问题是我的tabledata reload无法正常工作问题不在于reloadData函数,如何初始化数组?-(void)tableView:(UITableView*)tableView CommittedItingStyle:(UITableViewCellEditingStyle)editingStyle for RowAtIndexPath:(NSIndexPath*)indexPath{[self.table beginUpdates];if(editingStyle==UITableViewCellEditingStyleDelete){/[self.allBookMarks removeObjectAtIndex:indexath.row];Hadits*delHadit=[self.allBookMarks objectAtIndex:indexath.row];dbAccess*dbmethods=[[dbAccess alloc]init];NSInteger delHaditid=delHadit.hadit;[dbmethods deleteBookMark:delHaditid];[dbmethods release];}[self.table reloadData];[table endUpdates];}