Como esconder as variáveis ​​de instância em seu aplicativo ios

Video: How to Hide Any App on iPhone in iOS 9.3! No Jailbreak!

Quando as propriedades foram inicialmente desenvolvidos para iOS programação aplicativo, eles foram vistos como uma maneira de evitar o tédio de escrita acessores para propriedades com base em variáveis ​​de instância. As pessoas costumavam pensar em propriedades como uma maneira de acessar variáveis ​​de instância.

Video: iOS 10 - 10.2: Get In-App Purchases FREE on iPhone, iPad, iPod Touch With Yalu Jailbreak

Na verdade, variáveis ​​de instância não deve ser equiparado a propriedades, e mais importante, variáveis ​​de instância não deve ser tornada pública. (Fazer isso viola o princípio orientada a objeto de encapsulamento, mas isso é uma conversa para um tempo diferente.) Na verdade, a nova abordagem da Apple é colocar declarações de variáveis ​​de instância no arquivo de implementação da classe.

Xcode 4.2 surgiu, programadores declarou variáveis ​​de instância no arquivo de cabeçalho no @interface declaração de classe. Nos velhos tempos, você teria acrescentado o seguinte código em negrito para o TestDriveController.h Arquivo:

@ interface TestDriveController: UIViewController {AVAudioPlayer * backgroundAudioPlayer-SystemSoundID burnRubberSoundID-BOOL touchInCar-}

Esta abordagem feita variáveis ​​de instância (ivars) Visível a todos e tudo e estava em desacordo com o princípio de encapsulamento (mesmo se as variáveis ​​não pôde ser acessado).

Video: Top 10 Weirdest Games On iOS (Japanese)

Começando com o Xcode 4.2, agora você pode esconder as variáveis ​​de instância, declarando-os no arquivo de implementação de uma de duas maneiras. O primeiro é como um extensão de classe, que você cria, adicionando uma segunda seção de interface no arquivo de implementação seguido por parênteses abrir e fechar:

@interface TestDriveController () {AVAudioPlayer * backgroundAudioPlayer-SystemSoundID burnRubberSoundID-BOOL touchInCar -} - d


A segunda forma é, declarando a variável exemplo no @implementação bloco da classe:

@implementation TestDriveControllerAVAudioPlayer * backgroundAudioPlayer-SystemSoundID burnRubberSoundID-BOOL touchInCar-

Uma extensão de classe é uma variante de uma categoria Objectivo-C.

A abordagem que você usa é a sua escolha- usando extensão de classe faz com que as variáveis ​​mais fácil de distinguir.

Você também pode usar extensões de classe para ter um conjunto declarou publicamente de métodos e, em seguida, declarar métodos adicionais para uso unicamente pela classe:

@ interface TestDriveController () {AVAudioPlayer * backgroundAudioPlayer-SystemSoundID burnRubberSoundID-BOOL touchInCar -} - (void) privateMethod - d

Estes métodos não são realmente privada, mas não são visíveis no arquivo de cabeçalho. Eles são “APIs privadas.”


Publicações relacionadas