-2

Я пишу код, который получает рецепты в форме JSON с сервера и представляет его в UItable.Как удалить объект json с сервера?

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. Теперь я хочу написать запрос на удаление рецепта. Здесь это инструкция моего сервера. Он сказал, что я должен использовать следующий локон, чтобы удалить рецепты:

Удалить рецепты УДАЛЕНИЕ:/Рецепты /: ID В Curl было бы что-то подобное:

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

Я хотел бы реализовать удаление метод. Infact, я знал, что мне нужно реализовать следующий метод.

- (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]; 
} 

Кто-нибудь знает, как я могу реализовать метод удаления?

+1

что "бэкенд"? как реализован ваш бэкэнд? как кто-то может удалить что-то с помощью вашего бэкэнда? – ogres

+0

по второстепенному слову, я имею в виду сервер. Я не реализовал его. это сторонний API. сервер позволяет людям регистрироваться и получать от него рецепты. сервер также позволяет пользователю настраивать список рецептов, добавляя, редактируя и удаляя рецепты. @ogres – MKH

ответ

1

Привет, я догадываюсь, что вы регистрируетесь, чтобы удалить строку из таблицы и в фоновом режиме. Думаю, эта ссылка вам поможет. delete a row

если пользователь удалил все строки, он не хочет видеть, то он может быть удален Tableview этого методом

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

и после того, что вы должны удалить его форму вашей поддержки, как если ваша резервная копия - это локальная база данных, тогда вам нужно запустить запрос на удаление, а если вы используете webservice, то обратитесь в веб-сервис.

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 
+0

Спасибо за ваш ответ. Я использую вторую часть вашего ответа. но я не мог использовать первую часть, так как мой сервер находится на сервере. – MKH

+0

Я обновил вопрос – MKH

Смежные вопросы