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?

¿Fue útil?

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
scroll top