Je travaille sur une application de devoirs qui utilise des objets d'affectation personnalisés pour chaque affectation. J'essaie de stocker un NSMutableArray (casted à un NSArray via initWithArray :) dans standardUserDefaults mais j'ai des problèmes avec l'enregistrement et le rechargement du tableau.UserDefaults/KeyedArchiver Frustrations
J'ai une vue tabulaire à partir de laquelle vous pouvez choisir d'ajouter une nouvelle affectation (qui charge NewAssignmentViewController). Lorsque vous enregistrez l'affectation, elle est repoussée vers un tableau dans AssigmentsViewController. Et puis vous l'appelez chaque fois que vous chargez le UITableView qui montre les affectations.
Voici le code relatif:
-(void)saveToUserDefaults:(NSArray*)myArray{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:myArray] forKey:@"Assignments"];
[standardUserDefaults synchronize];
}
}
-(void)retrieveFromUserDefaults{
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:@"Assignments"];
if (dataRepresentingSavedArray != nil) {
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if ([oldSavedArray count] != 0) {
[assignments setArray:[[NSMutableArray alloc] initWithArray:oldSavedArray]];
}
else {
assignments = [[NSMutableArray alloc] initWithCapacity:100];
}
}
}
-(void)backButtonPressed {
[self saveToUserDefaults:[[NSArray alloc] initWithArray:assignments]];
[self.navigationController popViewControllerAnimated:YES];
}
S'il vous plaît aider. Il ne charge pas le tableau mais ne donne aucune erreur. Des conseils sur UserDefault ou KeyedArchiver en général seraient grandement appréciés.