C'è un modo 'semplice' di avere puri contenitori Objective-C, come NSMutableDictionary o CFMutableDictionary, che non incrementa il conteggio di riferimento di oggetti aggiunti, senza utilizzare la standard C++ biblioteca?dizionario non riferimento conteggio nell'obiettivo-c
MODIFICA: Spiegazione: la ragione per cui desidero è che io possa implementare una specie di modello "Esattamente uno": una classe avrà un metodo statico getThing: (NSString *). Se quel metodo trova una Cosa associata al nome in qualche datastructure statico (il dizionario di conteggio non di riferimento), lo restituisce, altrimenti ne crea uno, lo aggiunge alla struttura sotto quel nome e lo restituisce. Quell'oggetto Thing può essere conservato dal client a piacimento, ma quando il suo conteggio di riferimento scende a 0 (e viene chiamato dealloc), dovrebbe essere rimosso dal dizionario. Quindi, non posso rilasciarlo quando lo aggiungo e lo tengo di nuovo durante la sua rimozione - dealloc verrebbe chiamato di nuovo, e io non lo voglio. Ecco perché ho bisogno del dizionario non incrementale. Se c'è un altro modo per ottenere quello che voglio, per favore fatemelo sapere, anche se sono abbastanza sicuro che la risposta verificata mi dà quello che voglio. Grazie!
Il problema con il richiamo 'release' dopo l'aggiunta è che il contenitore rilascia l'oggetto quando viene rimosso, quindi se non si è tenuto su di esso un puntatore che è possibile conservare prima della rimozione, si finisce rilasciandolo. – warrenm
@warrenm, ma è possibile chiamare esplicitamente retain prima di rimuovere l'oggetto ... ovviamente, non vedo perché non si voglia aumentare il conteggio dei riferimenti su add in primo luogo. –
Buon punto. Ciò annulla totalmente il mio commento. Mi dispiace per quello – warrenm