tableview数据源方法中的commitEditingStyle

时间:2011-01-18 05:11:05

标签: iphone

我让nsmutablearray持有数据一两三四五...

我需要从commitEditingStyle中删除数据......

   - (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
    {

        if (editingStyle == UITableViewCellEditingStyleDelete) 
        {

        [favoriteListArray removeObjectAtIndex:indexPath.row];

    //  [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
  //    [tableView deleteRowsAtIndexPaths:[favoriteListArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        }
    }

删除所选列表的内容。

我的申请遭遇崩溃

* 由于未捕获的异常'NSInternalInconsistencyException'而终止应用,原因:'无效更新:无效的节数。更新后的表视图中包含的节数(4)必须等于更新前的表视图中包含的节数(5),加上或减去插入或删除的节数(0插入,0删除)。“

@thanks提前

2 个答案:

答案 0 :(得分:1)

如果要在没有对象时删除NSMutable Array,只需检查

即可
if([favoriteListArray count]<1)

    {
       [favoriteListArray release];//if it is not autorelease;
       favoriteListArray=nil;
    }

修改

用于删除表格中的条目

你现在需要重新加载表NSMutableArray没有那个条目所以这次它显示更新的结果。

答案 1 :(得分:0)

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {
        UIDevice *device_ID = [UIDevice currentDevice];
        NSString *deviceUDID = [device_ID uniqueIdentifier];
        NSLog(@"deviceUDID %@",deviceUDID);
        NSString *url=@"http://partytemperature.com/favoritevent_delete.php?eventid=";
        url=[url stringByAppendingFormat:@"%@&deviceid=%@",aEventInfo.event_ID,deviceUDID];
        NSLog(@"Url value %@",url);
        [self parsePopularEvent:[[NSURL alloc]initWithString:url]];
        [[[favoriteListArray objectAtIndex:indexPath.section]eventListArray] removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
        [tableView reloadData];
    }
}

-(void)parsePopularEvent:(NSURL *)url{
    NSXMLParser *xmlParser=[[NSXMLParser alloc]initWithContentsOfURL:url];
    XMLParser *parser=[[XMLParser alloc]initXMLParser];
    [xmlParser setDelegate:parser];
    BOOL success;
    success=[xmlParser parse];
    if (success) {
        NSLog(@"Parsed Success");
    }
    else

    NSLog(@"Error!!!!!");

}

这是删除选项,我完成了它的完美工作........

但我只能为我的网络服务发送一个请求。使用xmlparser ...我需要将每个已删除的请求发送到我的网络服务。