2010-05-24 3 views
0

Salut J'ai une vue de table, et quand je supprime une cellule je supprime un élément d'un NSMutableArray, l'archivage de ce tableau et la suppression de la cellule. Toutefois, lorsque je fais cela, le bouton de suppression est retardé après que je clique dessus. Est-ce qu'il y a un moyen de réparer ceci?iPhone/Obj-C - L'objet d'archivage provoque un décalage

// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     int row = [indexPath row]; 
     [savedGames removeObjectAtIndex:row]; 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

     //this line causing lag 
     [NSKeyedArchiver archiveRootObject:savedGames toFile:[self dataFilePath]]; 
    }  

}

Merci

Répondre

0

On dirait que vous connaissez déjà la réponse - n'archive pas tout sur tous les supprimer. Cela peut être fait de plusieurs façons - en archivant seulement des morceaux à la fois, en retardant l'archivage (périodiquement/en quittant/autres politiques), ou en rendant votre code d'archivage personnalisé considérablement plus rapide, ce qui, je le doute, aiderait beaucoup des choses. J'ai entendu MAKeyedArchiver était plus rapide que NSKeyedArchiver, mais je crois que c'était il y a quelque temps, et conçu pour le mac + potentiellement spécifique à la plate-forme (du bon côté, il était prévu comme remplacement de l'API NSKeyedArchiver du temps, il devrait donc y avoir peu de temps d'intégration si vous choisissez de l'utiliser).