Was passiert mit einem NSArray-Objekt beim Verschlüsseln?

8

Ich erstelle eine Anwendung, die NSCoding verwendet, um NSObject in einem documentPath zu speichern. Ich habe keine Probleme damit, ich bin nur neugierig auf etwas.

Ich habe MACompany, die NSCoding-Delegiertenmethoden implementiert.

%Vor%

Wie Sie sehen können, habe ich ein NSArray von benutzerdefinierten NSObjects (MAStore). Jedes dieser Objekte implementiert auch das gleiche NSCoding was nicht.

Meine Frage ist jedoch, wenn ich encodeWithCoder:(NSCoder *)encoder method in MAStore aufruft und auf [encoder encodeObject:stores forKey:kStores] zugreift, ob alle Objekte, die in stores NSArray gespeichert sind, die Methode encoderWithCoder:(NSCoder *)encoder aufgerufen haben, falls implementiert?

BEARBEITEN

Der Grund, warum ich das frage, ist, dass ich wissen will, ob es funktionieren wird oder nicht, bevor ich Zeit in so etwas investieren werde. Ich habe mehrere benutzerdefinierte NSObjects mit NSArrays, die mehr benutzerdefinierte NSObjects enthalten. Es wäre ein langer Prozess zu finden, dass es nicht funktioniert.

    
Sebastien Peek 03.11.2011, 01:20
quelle

1 Antwort

11

Ja. Der Encoder geht rekursiv in Containerobjekte (Arrays, Wörterbücher, Sets usw.) und codiert auch alle diese Objekte. Sie treffen eine Ausnahme, wenn eines der inneren Objekte NSCoding nicht unterstützt.

    
Ben Zotto 03.11.2011, 01:28
quelle