Cómo ocultar las variables de instancia en su aplicación para ios

Video: Ocultar juegos y subniveles de carpetas en el iPad

Cuando las propiedades fueron desarrollados para la programación de aplicaciones IOS, fueron vistos como una forma de evitar el tedio de descriptores de acceso de escritura para las propiedades basadas en variables de instancia. La gente solía pensar acerca de las propiedades como una manera de acceder a las variables de instancia.

De hecho, las variables de instancia no deben equipararse a las propiedades, y más importante, las variables de instancia no deben hacerse públicos. (Si lo hace, viola el principio orientado a objetos de encapsulación, pero eso es una conversación de una hora diferente.) De hecho, el nuevo enfoque de Apple es poner ejemplo, las declaraciones de variables en el archivo de implementación de la clase.

Xcode 4.2 se produjo, los programadores declaren las variables de instancia en el archivo de cabecera en el @interfaz declaración de la clase. En los viejos tiempos, le ha añadido el siguiente código en negrita para el TestDriveController.h archivo:

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

Este enfoque hizo variables de instancia (Ivars) Visible para todos y todo y estaba en contradicción con el principio de encapsulación (incluso si no se podía acceder a las variables).

Video: COMO COPIAR EN UN EXAMEN CON ANDROID

A partir de Xcode 4.2, ahora se puede ocultar variables de instancia que declaró en el archivo de implementación en una de dos maneras. La primera es como una extensión de clase, el que se crea mediante la adición de una segunda sección de interfaz en el archivo de implementación seguido de paréntesis de apertura y cierre:

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

La segunda manera es declarando la variable de instancia en el @implementación bloque de la clase:

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

Una extensión de clase es una variación de una categoría de Objetivo-C.

El enfoque que se utiliza tiene su elección- usando extensión de clase hace que las variables más fáciles de distinguir.

También puede utilizar las extensiones de clase para tener un conjunto de métodos declarado públicamente y luego declarar métodos adicionales para el uso exclusivo de la clase:

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

Estos métodos no son muy privado, pero no son visibles en el archivo de cabecera. Son “API privadas.”

Artículos Relacionados