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!
Conteúdo
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.”