Fügen Sie ein Objekt in NSMutableArray ein, das mit NSUserDefaults gespeichert wurde

Ich habe ein NSMutableArray gespeichert, die mit NSUserDefaults.
Dieses array ist mein "Lieblings" - Artikel, dass der Benutzer speichert, so dass, wenn möchte ich hinzufügen, dass eine Sache, die ich Lesen muss das array (von NSuserDefault) und speichern Sie in die erste freie position.

Ich bin mit dieser Methode fügen Sie einen Wert in das NSMutableArray

-(IBAction)save{
   NSMutableArray *abc = [[NSUserDefaults standardUserDefaults] objectForKey:@"12345"];
   int n = [abc count];
   [abc insertObject:@"aaa" atIndex:n];
   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   [[NSUserDefaults standardUserDefaults] setObject:abc forKey:@"12345"];
   [defaults synchronize];
   [abc release];
}

was ist der deal?
Wenn der Benutzer diese Methode aufrufen, zwei mal, beim zweiten mal stürzt die app mit diesem log:

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: verändernde Methode gesendet immutable-Objekt'

warum?
und warum gerade das zweite mal?
Das erste mal funktioniert!

InformationsquelleAutor der Frage JAA | 2011-03-17

Schreibe einen Kommentar