Jaki jest silny atrybut właściwości

80

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ę

Chance Hudson
źródło
1
Naprawdę nie powinno się tu mówić o beta NDA ...
Kendall Helmstetter Gelner
3
No, nie tak jak im daje sekretów firmowych, ale tak chyba powinien umieścić to w forach jabłka DEV
szansa Hudson
Ciągle widzę te „beta NDA” komentarze dotyczące rzeczy związanych z celem C. Uważam to za zabawne, że Apple czuje potrzebę ochrony swoich obiektywnych sekretów c (wszyscy nie mogą się doczekać skopiowania celu c!), A jeszcze zabawniejsze, że programiści odczuwają potrzebę wkurzania ludzi w tym zakresie.
Jehan,

Odpowiedzi:

10

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;**
Jack Farnandish
źródło
4

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”.

sanjeev sharma
źródło