J'ai regardé partout sur ce problème. Tout ce que j'essaie de faire est de créer un objet par défaut nsuser, puis d'ajouter un tableau mutable et d'essayer de modifier l'objet nsuserdefaults.iphone xcode; mutableCopy encore immuable?
//Created a sample array
NSMutableArray *xml=[[NSMutableArray alloc] init];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
//assigned to defaults object which is created previously with a mutableCopy
[defaults setObject:[xml mutableCopy] forKey:@"userLocationsDetailedXML"];
//Tried to modify the defaults object - which at this point should be mutable
[[defaults objectForKey:@"userLocationsDetailedXML" ] replaceObjectAtIndex:1 withObject:@"y"] ;
Ajout [defaults synchronize]
aide does'nt soit.
Mais étonnamment, l'objet par défaut est toujours immuable. C'est __NSCFArray, pas __NSCFArrayM comme prévu Des suggestions?
edit: console output Classe: __NSCFArray => Ne devrait-il pas être _ NSCFArrayM depuis que j'ai créé une copie mutable? [ _NSCFArray replaceObjectAtIndex: withObject:]: Méthode objet envoyé à muter immuable »
Salut sam, cela n'a pas aidé non plus - il jette quand même une erreur que le tableau est immuable. Mais woul'dnt [xml mutableCopy] crée un tableau mutable? pourquoi est-ce immuable dans ce cas? – Veeru
Ooh, bonnes choses sur cette autre réponse! On dirait que vous ne pouvez pas utiliser NSUserDefaults pour prendre soin de ce problème particulier. –
Juste modifié ma réponse avec une suggestion pour mieux faire. –