Kakao ist NSDictionary: warum sind keys kopiert?

Alle Objekte als Schlüssel verwendet, die in NS(Mutable)Wörterbücher unterstützen muss, die NSCopying Protokoll, und diese Objekte werden kopiert, wenn Sie gewohnt sind, im Wörterbuch.

Ich Häufig verwenden möchten, schwerere Gegenstände wie Schlüssel, einfach zu Karte einem Objekt zum anderen. Was ich wirklich meine, wenn ich das Tue, ist effektiv:

[dictionary setObject:someObject forKey:[NSValue valueWithPointer:keyObject]];

("Wenn ich zurückkomme, und die hand, die Sie die gleiche Taste Objekt-Instanz wieder, hol mir den gleichen Wert heraus.")

...das ist genau das, was ich am Ende tun, um dieses design manchmal. (Ja, ich weiß, über NSMapTable in desktop-Kakao, aber z.B. iPhone dies nicht unterstützt.)

Aber was ich nicht wirklich bekommen, ist, warum das kopieren des Schlüssels ist notwendig oder wünschenswert in den ersten Platz. Was hat es zu kaufen, die Umsetzung oder die Anrufer?

InformationsquelleAutor Ben Zotto | 2010-03-06
Schreibe einen Kommentar