¿Cómo se implementa @private?
-
08-10-2019 - |
Pregunta
En Objective-C, soy curioso cómo, al igual @private
, @protected
, etc se implementan controles de acceso para las variables de instancia.
Me había considerado que las estructuras separadas se estaban generando de alguna manera como esto:
@interface Foo {
int bar;
@private
int baz;
@public
int qux;
}
=>
algo en la línea de
struct Class_Foo_Protected {
int bar;
};
struct Class_Foo_Private {
int baz;
};
struct Class_Foo_Public {
int qux;
};
Pero realmente no tengo idea. Alguien sabe cómo se ha hecho en realidad?
Solución
Estos modificadores no cambian nada sobre el diseño de memoria de la clase. El propio compilador, que recuerda Ivar es público, protegido o privado y errores Emite si se intenta acceder a ellos desde algún lugar inadecuado. Todo esto se hace antes de generar cualquier código y no afecta el código generado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow