Iphone 表重新加载数据不工作
我使用以下代码从tableview以及db中删除一行, 该行立即从数据库中删除,但在我返回并使用chk aggain之前,它不会从tableview中删除,我希望当我删除该行时tableview应该重新加载数据。。。 有什么想法吗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
-(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];}