mam uznającą właściwość NSString w klasie i objective-c narzeka, że:NSString nie 'assign', 'zachowują' lub 'copy' atrybut jest określony
NSString nie 'assign', ' Zachowaj atrybut "lub" Kopiuj "jest określony
Następnie niechcący informuje mnie, że" zamiast tego używane jest przypisanie ".
Czy ktoś może mi wyjaśnić różnicę pomiędzy przypisać, zachować i kopię w normalnych warunkach C zarządzania pamięcią funkcji?
zatrzymaj - __even if__ ktoś [deallocs] NSString, do którego się odwołujesz? Czy to działa tylko wtedy, gdy każdy użytkownik tej samej instancji [wypuszcza]? – bobobobo
@obobobobo - powinieneś * nigdy * wywoływać 'dealloc' samodzielnie. Powinieneś zawsze używać 'release' lub' autorelease'. –
Co powiedział Dave. Powodem, dla którego twoje dane są zagwarantowane, jest to, że zakładasz, że wszyscy inni używają wersji, obniżając licznik referencji tylko poprzez odniesienie. Jeśli inni ludzie lub ty sam, przepuścisz dealloc lub zwolnisz obiekt (nie przestrzegając zasad) twoje dane nie są gwarantowane! – bmalicoat