我想在可编辑的UITableView中移动一些行后保存到数据库, 但是发生了错误 我找不到错误的原因。请告诉我有关我的代码的信息。谢谢!
我的代码:
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
return indexPath.section == 0 && indexPath.row < items.count;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
toIndexPath:(NSIndexPath *)toIndexPath {
isReOrderNoteList= YES;
NSString *rowContent = [items objectAtIndex:fromIndexPath.row];
[items removeObjectAtIndex:fromIndexPath.row];
[items insertObject:rowContent atIndex:toIndexPath.row];
}
//I'm using UIButton instead of Navigation barbutton.
- (IBAction)EditTable:(id)sender{
f(TableView.editing)
{
if(isReOrderNoteList)
{
[super setEditing:NO animated:NO];
[TableView setEditing:NO animated:NO];
[btn_Edit setTitle:@"Edit" forState:UIControlStateNormal];
FMDatabase *dbS = [FMDatabase databaseWithPath:dbPath];
[dbS open];
NSInteger tmp = 1;
NSLog(@" [self.items count] : %d", [ items count]); **// Print 6 !!.**
for (NSInteger i = 0; i< [items count]; i++) {
Note *list = [[Note alloc] init];
list = [items objectAtIndex:i];
NSLog(@" list.itle : %@", list.title); **//Error occurred at this line.**
NSLog(@" list.IDX : %d", list.IDX);
[dbS executeUpdate:@"Update test set sort_seq = ? where idx = ? ", [NSNumber numberWithInt:tmp], [NSNumber numberWithInt:list.IDX]];
[list release];
tmp++;
}
[dbS close];
}
//Re-init
isReOrderNoteList = NO;
}
else
{
[super setEditing:YES animated:YES];
[TableView setEditing:YES animated:YES];
[btn_Edit2 setTitle:@"Done" forState:UIControlStateNormal];
}
}
错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteNotification title]: unrecognized selector sent to instance 0x892b550'
*** First throw call stack:
答案 0 :(得分:1)
您在代码末尾发布了注释而没有在“items”数组
上执行此操作 Note *list = [[Note alloc] init];
list = [items objectAtIndex:i];
NSLog(@" list.itle : %@", list.title); **//Error occurred at this line.**
NSLog(@" list.IDX : %d", list.IDX);
[dbS executeUpdate:@"Update test set sort_seq = ? where idx = ? ", [NSNumber numberWithInt:tmp], [NSNumber numberWithInt:list.IDX]];
[list release];
应该是
Note *list = [items objectAtIndex:i];
NSLog(@" list.itle : %@", list.title); **//Error occurred at this line.**
NSLog(@" list.IDX : %d", list.IDX);
[dbS executeUpdate:@"Update test set sort_seq = ? where idx = ? ", [NSNumber numberWithInt:tmp], [NSNumber numberWithInt:list.IDX]];
答案 1 :(得分:0)
我认为它的Alloc init问题...所以尝试分配你在你的uitableview中使用的“rowContent”和其他字符串