Vorrei memorizzare un riferimento debole di azzeramento a un oggetto in un NSDictionary
. Si tratta di un riferimento a un genitore NSDictionary
, quindi è possibile eseguire la scansione di una grande struttura senza effettuare ricerche.Oggetto debole in un NSDictionary?
Non riesco a utilizzare __weak
qui; anche se il mio riferimento locale è debole, lo NSDictionary
memorizzerà un riferimento forte all'oggetto a cui è stato fatto un debole riferimento. E, ovviamente, NSDictionary
non può avere oggetti nil
.
Sono su iOS, non su Mac, quindi NSHashTable
non è disponibile. E voglio solo un oggetto per essere debole; il resto dovrebbe essere ancora forte.
(ho intenzione di pubblicare la mia risposta, così ho qualcosa da contrassegnare come accettata se non c'è risposta migliore. Ma sto sperando che qualcuno ha una risposta migliore.)
Ho creato [questo] (https://gist.github.com/firelizzard18/6326536) per essere un dizionario che memorizza oggetti come effettivamente azzerando riferimenti deboli. Potrebbe essere modificato (e ripulito) per servire ai tuoi scopi. –