Oto informacje, które wiem o właściwościach zmiennych
- atomowy // domyślny
- nieatomowy
- strong = retain // default
- słaby
- zachować
- przypisać // domyślne
- unsafe_unretained
- Kopiuj
- tylko czytać
- readwrite // default
więc poniżej znajduje się link do szczegółowego artykułu, w którym można znaleźć wyżej wymienione wszystkie atrybuty, które zdecydowanie Ci pomogą. Wielkie dzięki dla wszystkich ludzi, którzy udzielają tutaj najlepszych odpowiedzi !!
Zmienne atrybuty właściwości lub modyfikatory w iOS
01. strong (iOS4 = retain)
- jest napisane „trzymaj to w stosie, dopóki nie wskażę tego więcej” - innymi słowy „Jestem właścicielem, nie możesz cofnąć przydziału, zanim wycelujesz dobrze z tym samym co zatrzymaj "- Używasz silnego tylko wtedy, gdy musisz zachować przedmiot. - Domyślnie wszystkie zmienne instancji i zmienne lokalne są silnymi wskaźnikami. - Generalnie używamy strong dla UIViewControllers (rodziców elementu UI) - strong jest używane z ARC i zasadniczo pomaga, ponieważ nie musisz martwić się o liczbę zatrzymań obiektu. ARC automatycznie zwalnia go za Ciebie, gdy skończysz z tym. Użycie słowa kluczowego strong oznacza, że jesteś właścicielem obiektu.
Przykład:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. słaby (iOS4 = unsafe_unretained)
- jest napisane „trzymaj to tak długo, jak ktoś inny mocno na to wskazuje” - to samo, co przypisuj, nie zachowaj ani nie zwolnij - „Słabe” odniesienie to odniesienie, którego nie zachowujesz. - Zwykle używamy słabego dla IBOutlets (UIViewController's Childs). Działa to, ponieważ obiekt potomny musi istnieć tylko tak długo, jak obiekt nadrzędny. - słabe odwołanie to odwołanie, które nie chroni obiektu, do którego się odwołujemy, przed zebraniem przez moduł odśmiecania pamięci. - Słabe jest w istocie przypisane, niezatrzymane. Z wyjątkiem sytuacji, w której obiekt jest zwalniany, słaby wskaźnik jest automatycznie ustawiany na zero
Przykład:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Wyjaśnij : podziękowania dla BJ Homera
Wyobraź sobie, że naszym przedmiotem jest pies, który chce uciec (zostać zwolniony). Silne wskazówki są jak smycz na psie. Dopóki masz przypiętą smycz do psa, pies nie ucieknie. Jeśli pięć osób przypina smycz do jednego psa (pięć mocnych wskazówek do jednego przedmiotu), pies nie ucieknie, dopóki wszystkie pięć smyczy nie zostanie odczepione. Z drugiej strony słabe wskazówki są jak małe dzieci, które wskazują na psa i mówią „Patrz! Pies!”. Dopóki pies jest na smyczy, małe dzieci mogą go nadal widzieć i nadal będą na niego wskazywać. Jednak gdy tylko wszystkie smycze zostaną odpięte, pies ucieka bez względu na to, ile małych dzieci na niego wskazuje. Gdy tylko ostatni silny wskaźnik (smycz) nie będzie już wskazywał na obiekt, obiekt zostanie zwolniony, a wszystkie słabe wskaźniki zostaną wyzerowane. Kiedy używamy słabych? Jedyny przypadek, w którym chciałbyś użyć słabego, to gdybyś chciał uniknąć zachowania cykli (np. Rodzic zatrzymuje dziecko, a dziecko rodzica, więc żadne z nich nie jest nigdy zwolnione).