Ich habe gerade angefangen, in das Reich von Objective-C zu springen und bekomme langsam alles. Ich habe an dem Archivieren einer Datei gearbeitet, die ein NSMutableArray war und dann in meinem Modell mit diesem Array initialisiert. Das Array ist mit verschiedenen NSMutableDicationary's gefüllt. Nach dem, was ich gesehen habe, wird es diese Wörterbücher als nicht änderbar hinzufügen, also ging ich voran und kopierte das reguläre und legte sie in ein veränderbares und entferne das alte. Diese Lösung scheint für alle Instanzen außer dem allerersten zu funktionieren.NCSFDictionary, Muting-Methode an unveränderliches Objekt gesendet
Ich bin ratlos, warum es für alle außer dem ersten funktionieren würde.
Hier ist, wie ich das alles
-(id) initWithList:(NSMutableArray *)savedList
{
self = [super init];
if (self)
{
int size=0;
serverList=[[NSMutableArray alloc] initWithArray:savedList copyItems:YES];
size=[serverList count];
for(int i=0;i<size;i++)
{
loginList=[NSMutableDictionary dictionaryWithDictionary:[serverList objectAtIndex:i]];
[serverList addObject:loginList];
[serverList removeObjectAtIndex:i];
}
}
return self;
}
Hier ist der Code bin initialisiert, der den Fehler zu werfen, Der Wert wird in einem Tableview aus einer Checkbox lesen und hier übergeben den Wert zu ändern. Hier
-(void)setMount:(int)row value:(NSNumber*)boolAsNumber
{
[[serverList objectAtIndex:row] setObject:boolAsNumber forKey:@"mountshare"];
}
ist der Fehler, dass es zeigt, wenn ich versuche, und ändern Sie das erste Element
2010-12-01 13:38:54.445 Network Share[35992:a0f] *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
Vielen Dank für Ihre Hilfe. Wenn es einen besseren Weg gibt, lass es mich wissen.
Wow danke! Das erklärt es, wirkt jetzt wie ein Zauber. – utahwithak
danke ... +1 seine gelöst ma Problem auch .. :) – Rajneesh071
und ich antwortete auch .. mit Ihrer Antwort .. :) http: // stackoverflow.com/questions/6100271/nsinternalinconsistencyexception-with-nsuserdefaults-wenn-using-method-setvalue/13952939 # 13952939 – Rajneesh071