2011-07-14 13 views
78

Używam wersji beta Xcode dla programistów i zauważam pewne subtelne różnice. Wśród nich jest nowy atrybut deklarowanych właściwości.Co to jest silny atrybut właściwości

@property(strong)IBOutlet NSArrayController *arrayControl; 

Moje pytanie brzmi: co oznacza silny atrybut? Czy zastępuje starszą, czy jest to coś zupełnie nowego? Przeszukałem google i dokumentację programisty i nie mogłem znaleźć niczego. Dopóki nie wiem, co to jest, jestem niezdecydowany, aby go użyć.

Dzięki z góry

+1

Naprawdę nie powinno się mówić o beta NDA rzeczy tutaj ... –

+3

No, nie tak jak im rozdaje firmowych tajemnic, ale tak chyba powinien umieścić to w jabłkach dev fora –

+0

Ciągle widzę te "beta NDA" komentuje obiektywne c rzeczy. Uważam, że to zabawne, że Apple czuje potrzebę ochrony swoich obiektywnych tajemnic c (wszyscy umierają, aby skopiować cel c!), A nawet zabawniej, że deweloperzy czują potrzebę obchodzenia ludzi dookoła. – Jehan

Odpowiedz

4

Jak wiemy, nie możemy zwolnić żadnego obiektu w projekcie opartym na ARC w iOS 5. Tak więc, gdy chcemy zachować dowolny obiekt do dalszego wykorzystania na późniejszym etapie i nie chcemy, aby ARC usunął obiekt z pamięci, następnie ustawiamy właściwość obiektu jako "Strong".

10

Mocne odniesienie jest odniesieniem do obiektu, który zatrzymuje go przed zwolnieniem. Innymi słowy tworzy relację właściciela. Podczas gdy wcześniej byłoby to zrobić:

**// Non-ARC Compliant Declaration 
@property(retain) NSObject *obj;** 

Under ARC mamy następujące czynności, aby zapewnić instancję klasy bierze udział własnościowy o odwołanie obiektu (tzn więc nie może być zwalniane aż właściciel jest).

**// ARC Compliant Declaration 
@property(strong) NSObject *obj;**