2010-04-25 23 views
5

Chcę użyć wartości odniesienia obiektu jako klucza do słownika, w przeciwieństwie do kopii wartości obiektu. Tak więc, zasadniczo chcę przechowywać obiekt powiązany z konkretną instancją innego obiektu w słowniku i pobrać tę wartość później.Wartość wskaźnika obiektu jako klucz do słownika

Czy to możliwe? Czy jest to całkowicie sprzeczne z ideą NSDictionary? Mogę powiedzieć, że prawdopodobnie podchodzę do tego w niewłaściwy sposób, ponieważ słownik chce, żebym zaimplementował NSCopying na samym obiekcie, co nie ma większego sensu pod względem tego, co robię. Widzę, że to, co powinienem robić, to zawijanie wartości wskaźnika, ale wydaje się to trochę szalone.

Rada zostanie doceniona.

Odpowiedz

2

NSMutableDictionary został zaprojektowany do obsługi tylko obiektów Objective-C. Na przykład po wywołaniu setObject:forKey: wywołania metody copyWithZone: na klucz i retain na wartość.

Jeśli chcesz mieć strukturę słownika i mieć możliwość radzenia sobie z arbitralnym kluczem i wartością, możesz przejść z CFMutableDictionary. Możesz dokładnie opisać, co się dzieje z kluczem i wartościami; jest wystarczająco elastyczny, aby poradzić sobie z arbitralnymi wskaźnikami lub zdarzeniami char *.

11

Myślę, że można użyć [NSValue valueWithPointer:object].

+0

który pracował dość dobrze, dzięki! –

0

To załatwiło sprawę dla mnie

aDictionary[@((intptr_t)object)] = ...; 
Powiązane problemy