-2

J'écris un code qui obtient des recettes sous forme de JSON à partir d'un serveur et le présente dans un UItable.Comment supprimer un objet json du serveur?

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

Ce serveur est écrit en Ruby. Maintenant, je veux écrire une demande pour supprimer une recette. Ici c'est l'instruction de mon serveur. Il a dit que je devrais utiliser boucle suivante pour supprimer une recette:

Supprimer recettes SUPPRIMER:/recettes /: id Dans Curl ce serait quelque chose comme ça:

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

je voudrais mettre en œuvre la suppression méthode. Enfait, je savais que je devais mettre en œuvre la méthode suivante.

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

Est-ce que quelqu'un sait comment implémenter la méthode de suppression?

+1

ce qui est "back-end"? Comment votre backend est-il implémenté? Comment quelqu'un peut-il supprimer quelque chose en utilisant votre backend? – ogres

+0

par mot backend, je veux dire le serveur. Je ne l'ai pas implémenté. c'est une API tierce. le serveur laisse les gens s'enregistrer et recevoir des recettes. le serveur permet également à l'utilisateur de personnaliser la liste des recettes en ajoutant, éditant et supprimant des recettes. @ogres – MKH

Répondre

1

Bonjour je suppose que vous vous connectez pour supprimer une ligne de la tableview et le sauvegardé. Je suppose que ce lien vous aidera. delete a row

si l'utilisateur a supprimé une ligne qu'il ne veut pas voir alors il peut être supprimé par tableview par cette méthode

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

et après que vous devez retirer votre forme comme si soutenu votre sauvegardé est une base de données locale, puis vous devez déclencher une requête de suppression et si vous utilisez webservice, cliquez sur le service web.

1

Je pense, vous en avez besoin:

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

Merci pour votre réponse. J'utilise la deuxième partie de votre réponse. mais je ne pouvais pas utiliser la première partie puisque mon backend est sur le serveur. – MKH

+0

J'ai mis à jour la question – MKH