Frage

In Objective-C, ich bin gespannt, wie Zugangskontrollen zum Beispiel Variablen, wie @private, @protected usw. umgesetzt werden.

Ich hatte angenommen, dass getrennte Strukturen wurden in gewisser Weise wie diese erzeugt werden:

@interface Foo {
  int bar;
  @private
  int baz;
  @public
  int qux;
}

=> etwas entlang der Linien von

struct Class_Foo_Protected {
  int bar;
};

struct Class_Foo_Private {
  int baz;
};

struct Class_Foo_Public {
  int qux;
};

Aber ich wirklich keine Ahnung. Wer weiß, wie das wirklich getan?

War es hilfreich?

Lösung

Diese Modifikatoren ändern sie nicht, etwas über das Speicherlayout der Klasse. Der Compiler selbst merkt sich, welche Ivar öffentlich, geschützt oder privat und gibt Fehler, wenn Sie versuchen, sie ungeeignet von irgendwo zuzugreifen. Dies alles geschieht, bevor ein Code erzeugt wird, und wirkt sich nicht auf den generierten Code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top