Używam wersji beta Xcode dla programistów i zauważam pewne subtelne różnice. Wśród nich jest nowy atrybut dla zadeklarowanych właściwości.
@property(strong)IBOutlet NSArrayController *arrayControl;
Moje pytanie brzmi: co oznacza silny atrybut? Czy zastępuje starszą wersję, czy jest czymś zupełnie nowym? Przeszukałem Google i dokumentację programisty i nie udało mi się znaleźć niczego. Dopóki nie wiem, co to jest, waham się, czy go użyć.
Z góry dziękuję
Odpowiedzi:
Jest to zamiennik
retain
atrybutu w ramach automatycznego zliczania referencji (ARC) Objective-C . W kodzie innym niż ARC jest to tylko synonimretain
.źródło
Silne odniesienie to odniesienie do obiektu, które zapobiega jego cofnięciu. Innymi słowy, tworzy relację właścicielską. Podczas gdy wcześniej zrobiłbyś to:
**// Non-ARC Compliant Declaration @property(retain) NSObject *obj;**
W ramach ARC wykonujemy następujące czynności, aby upewnić się, że instancja klasy ma prawo własności do obiektu, do którego się odwołuje (tj. Nie można jej cofnąć, dopóki właściciel nie jest).
**// ARC Compliant Declaration @property(strong) NSObject *obj;**
źródło
Jak wiemy, nie możemy zwolnić żadnego obiektu w projekcie opartym na ARC w iOS 5. Więc jeśli chcemy zachować jakikolwiek obiekt do dalszego wykorzystania w późniejszym etapie i nie chcemy, aby ARC usuwał obiekt z pamięci, ustawiamy właściwość obiektu to „Strong”.
źródło