Aqui estão as informações que eu sei sobre propriedades variáveis
- atômico // padrão
- não atômico
- forte = reter // padrão
- fraco
- reter
- atribuir // padrão
- unsafe_unretained
- cópia de
- somente leitura
- readwrite // default
então, abaixo está o link do artigo detalhado onde você pode encontrar todos os atributos mencionados acima, que certamente irão ajudá-lo. Muito obrigado a todas as pessoas que aqui deram as melhores respostas !!
Atributos de propriedade variável ou modificadores no iOS
01. forte (iOS4 = reter)
- diz "manter isso na pilha até que eu não aponte mais para ele" - em outras palavras "Eu sou o dono, você não pode desalocar isso antes de apontar bem com o mesmo que reter “- Você usa forte apenas se precisar reter o objeto. - Por padrão, todas as variáveis de instância e variáveis locais são indicadores fortes. - Geralmente usamos strong para UIViewControllers (pais do item de UI) - strong é usado com ARC e basicamente ajuda você, por não ter que se preocupar em reter a contagem de um objeto. O ARC o libera automaticamente para você quando você terminar de usá-lo. Usar a palavra-chave forte significa que você possui o objeto.
Exemplo:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. fraco (iOS4 = inseguro_ não retido)
- diz "mantenha isso contanto que outra pessoa aponte para ele com força" - o mesmo que atribuir, não reter ou liberar - Uma referência "fraca" é uma referência que você não retém. - Geralmente usamos fraco para IBOutlets (Childs de UIViewController). Isso funciona porque o objeto filho só precisa existir enquanto o objeto pai existir. - uma referência fraca é uma referência que não protege o objeto referenciado da coleta por um coletor de lixo. - Fraco é essencialmente atribuir, uma propriedade não retida. Exceto quando o objeto é desalocado, o ponteiro fraco é automaticamente definido como nulo
Exemplo:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Explique : Graças a BJ Homer
Imagine que nosso objeto é um cachorro e que ele quer fugir (ser desalocado). Dicas fortes são como uma coleira no cão. Contanto que você tenha a guia presa ao cão, o cão não fugirá. Se cinco pessoas prenderem a coleira em um cão (cinco pontas fortes em um objeto), o cão não fugirá até que todas as cinco coleiras sejam retiradas. Os ponteiros fracos, por outro lado, são como crianças apontando para o cachorro e dizendo "Olha! Um cachorro!" Enquanto o cachorro ainda estiver na coleira, as crianças pequenas ainda podem ver o cachorro e ainda apontam para ele. Assim que todas as coleiras são retiradas, porém, o cachorro foge, não importa quantas crianças apontem para ele. Assim que o último ponteiro forte (leash) não apontar mais para um objeto, o objeto será desalocado e todos os ponteiros fracos serão zerados. Quando usamos fraco? A única vez em que você desejaria usar o fraco é se quisesse evitar ciclos de retenção (por exemplo, o pai mantém o filho e o filho mantém o pai, então nenhum dos dois nunca é liberado).