-2

我编写了一个从服务器获取 JSON 形式的食谱并将其呈现到 UItable 中的代码。

NSURL *url = [NSURL URLWithString:@"http://domain.com/recipes"];
    [config setHTTPAdditionalHeaders:@{@"Authorization":@" Token token=\"3f71235466468b7f7\""}];

    NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:nil delegateQueue:[NSOperationQueue mainQueue]];

    [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        recipes= [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
       [self.tableView reloadData];

    }
      ] resume];

该服务器是用 Ruby 编写的。现在我想写一个删除食谱的请求。这是我的服务器的说明。它说我应该使用以下 curl 删除食谱:

删除食谱 DELETE: /recipes/:id 在 Curl 中它会是这样的:

curl -H 'Authorization: Token token="0b774d575632b"' -X DELETE http://domain.com/recipes/22 

我想实现删除方法。事实上,我知道我需要实现以下方法。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
//how to delete it from server??????  
// Remove the row from data model
[recipes removeObjectAtIndex:indexPath.row];

// Request table view to reload
[tableView reloadData];
} 

有谁知道我该如何实现删除方法?

4

2 回答 2

1

我想,你需要这个:

NSString *query=[NSString stringWithFormat:@"delete from Inbox_Table where msg_ID='%d'",obj.msg_ID]; //whatever your delete query
[DataBaseClass deleteRecord:[query UTF8String]]; //call method to delete from database

[testArr removeObjectAtIndex:indexPath.row]; //remove from array
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; //remove row from tableview
于 2015-07-31T12:11:29.077 回答
1

嗨,我猜您正在记录以从 tableview 和支持中删除一行。我想这个链接会帮助你。删除一行

如果用户删除了他不想看到的任何行,则可以通过 tableview 通过此方法将其删除

 [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];

然后你必须从你的支持中删除它,如果你的支持是本地数据库,那么你必须触发删除查询,如果你使用的是 web 服务,然后点击 web 服务。

于 2015-07-31T11:55:11.910 回答