Como usar contagem de referência automática (arco) para seu aplicativo ios
Você pode querer usar ARC para seu aplicativo iOS. contagem de referência automático (ARC) é uma característica de nível compilador que simplifica o processo de gestão dos tempos de vida dos objectos Objectivo-C. Em vez de você ter que se lembrar quando a reter ou liberar um objeto, ARC avalia as exigências da vida de seus objetos e automaticamente sintetiza o método apropriado chama em tempo de compilação.
Conteúdo
Não é um novo modelo de memória de tempo de execução - e não é um coletor de lixo. Toda a acção ocorre na compiler.ARC cuida do processo de retenção e libertação de objectos, tirando partido de (e tendo o compilador impor) convenções de nomenclatura. Ele também conta com novos qualificadores de propriedade ponteiro objeto.
Para que você não se preocupe, ARC é realmente muito mais rápido (tem melhor desempenho) do que fazendo o gerenciamento de memória em seu próprio país.
O ARC não automatizar malloc () e livre() (Funções C) e não automatizar (CF) ou (CG).
Para ser capaz de gerenciar a memória para você, ARC impõe algumas restrições - reforçando principalmente algumas das melhores práticas e não permitindo algumas outras práticas. Você não terá que se preocupar com a maior parte deste em um aplicativo que foi criado para usar ARC.
Aqui estão as regras que você tem que seguir para usar ARC em seu aplicativo.
Regra 1: Não ligue para o reter, lançamento, ou disparo automático métodos. Além disso, você não pode implementar personalizado ou métodos.
Video: Curso Word #18 - Criando Bibliografia ABNT Automática no Word
Se você é novo em programação Objective-C, esta regra não vai significar nada para você, porque não é algo que você tem feito em seus aplicativos existentes. A única razão que você precisa saber sobre esta regra é entender o que o código não-ARC está fazendo para gerenciar a memória. Se você é um veterano, você vai ter usado esses métodos, e você vai ficar feliz em ser contada não usá-los.
Você pode fornecer uma implementação personalizada dealloc se você precisa para gerenciar outros recursos.
Regra 2: Não guarde ponteiros de objeto em estruturas C. Porque o compilador deve saber quando as referências vêm e vão, você não pode armazenar ponteiros de objeto em structs. Para a maioria dos leitores, que não será um problema, porque você estará usando objetos ao invés de estruturas C.
Regra 3: Informe o compilador sobre propriedade ao usar objetos Fundação de estilo Core. Em aplicativos iOS, você costuma usar o CoreFoundation estrutura.
Video: Referências Vancouver
CoreFoundation objetos são nada começando com uma CF- coisas como as funções do catálogo de endereços, por exemplo. UMA CoreFoundation objeto seria algo como isto:
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) burnRubberURL, burnRubberSoundID) -
O ARC não gerenciar automaticamente o tempo de vida CoreFoundation tipos, e há CoreFoundation regras de gerenciamento de memória e funções que você pode usar, como CFRetain e CFRelease (Ou a variantes específicas do tipo correspondente).
Na maioria das vezes, você não precisa se preocupar com o gerenciamento de memória, porque normalmente você vai estar lançando um objeto Objective-C para um CoreFoundation tipo de objeto, ou vice-versa - com o resultado que você acabar com nenhuma CoreFoundation gerenciamento de memória em seu código. Você ainda tem que deixar o compilador saber sobre quaisquer implicações de gerenciamento de memória, no entanto.
Você simplesmente dizer ARC não se preocupar usando um _ponte fundida.
Se você tiver CoreFoundation gerenciamento de memória, macros, como CFBridgingRetain ou CFBridgingRelease irá transferir a propriedade entre ARC e CoreFoundation.
Regra 4: Use o @autoreleasepool palavra-chave para marcar o início de um bloco de disparo automático. Isso não é algo que você vai estar preocupado - nem nunca o farei, para que o assunto. Mas é uma regra, no entanto.
Video: AULA 6 - AUTOMATIZAÇÃO DE CITAÇÕES E REFERÊNCIAS
Regra 5: Siga as convenções de nomenclatura. O compilador sabe se deseja manter um objeto com base no que é retornado. Às vezes, o objeto que está sendo retornado por um método é mantido, e às vezes é autoreleased mais tarde. Se o objeto vai ser autoreleased, o objeto precisa ser mantido. Se ele já está retido, você não quer que o compilador para fazer qualquer coisa.
A única maneira que o compilador sabe se um objeto foi retido quando é retornado é através de certas convenções de nomenclatura. Sob ARC, estas convenções de nomenclatura são agora parte da linguagem, e você deve segui-los.
O compilador sabe que um objeto retido foi devolvido quando a primeira palavra na primeira parte do seletor (O nome do método) é alloc, Novo, cópia de, cópia muteable, ou nisso. Estes métodos transferir a propriedade - onde propriedade transferida significa que o objeto foi retido para você. Um exemplo é a NSString initWithFormat: método. (Lembre-se que a “propriedade” não é propriedade exclusiva:. Vários objetos podem possuir simultaneamente um único objeto)
Além disso, você não pode dar uma propriedade de um nome que começa com.
Regra 6: Basta seguir as regras. É isso - sem retenção liberando ou autoreleasing. Basta seguir as regras e códigos para o conteúdo do seu coração sem se preocupar com o gerenciamento de memória.
Exceto, é claro, em algumas situações, você precisa dizer explicitamente o compilador sobre o que você quer fazer. Nesses casos, você terá que dizer ao compilador explicitamente sobre a vida de um objeto.