2016-04-06 6 views
0

ich Daten in NSUserDefault einen Aufruf an anderen Klassen wie Einstellung:Objekt kann nicht in Array löscht

kPref = [NSUserDefaults standardUserDefaults] 
[kPref setObject:dicOrder forKey:SEND_DATA]; 

und Abrufen wie:

NSMutableDictionary *temp = [[kPref dictionaryForKey:SEND_DATA] mutableCopy]; 
[arrayOrder addObject:temp]; 

Jetzt i ein beliebiges Objekt nicht löschen in Temp von arrayOrder.

Wie kann ich auf dieses NSMutableDictionary zugreifen, das von kpref kommt OR, wie man irgendein Objekt im Wörterbuch löscht.

EDIT

im Entfernen von Kriterien:

[[[[[arrayOrder objectAtIndex:0] valueForKey:ORDER_Choice] valueForKey:str] mutableCopy] removeObjectAtIndex:0]; 

und es mir gleiche Array zurück.

+0

was abot '[temp removeObjectForKey: @ "A_Key"];' –

+0

Sie erstellen eine veränderbare Kopie und entfernen etwas daraus. Dies ändert nicht das Original, das immer noch im Array gespeichert ist. – Avi

+0

Können Sie das Wörterbuch schreiben, das Sie mit seiner Hierarchie entfernen möchten? –

Antwort

0

Dank allen, habe ich die Lösung:

Mit archivedDataWithRootObject:dicOrder:

[kPref setObject:[NSKeyedArchiver archivedDataWithRootObject:dicOrder] forKey:SEND_DATA]; 

Und unarchiveObjectWithData:dataRepresentingSavedArray wie:

NSData *dataRepresentingSavedArray = [kPref objectForKey:SEND_DATA]; 
NSMutableDictionary *newDict = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray]; 
+0

Was? Sie sagen, Sie können ein Wörterbuch nicht in 'NSUserDefaults' speichern, wenn Sie es nicht zuerst serialisiert haben? – trojanfoe