Seite 1 von 1

bekannte Membervar angeblich unbekannt.

Verfasst: Di, 11. Apr 2017 19:09
von Manfred
Sackerlzement,
ich stosse hier gerade auf einen für mich vollkommen unverständlichen Fehler. Ich habe eine Membervar deklariert in einer Klasse, die von einer anderen Klasse erbt. Wenn ich diese Membervar in der anderen Klasse erreiche und abfrage, gibt es eine Fehlermeldung das diese Var angeblich keine Variable der Klasse ist. Stoppe ich aber an der Stelle im Debugger und frage sie ab, oder lasse mir im Objektmanager das Objekt anzeigen, ist die Variable vorhanden und auch mit einem Wert belegt.

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Mi, 12. Apr 2017 6:49
von georg
Guten Morgen, Manfred -


hast Du mal ein wenig Code, damit wir uns das mal genauer ansehen können?

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Mi, 12. Apr 2017 7:08
von brandelh
Dein Verhalten würde passen für eine PROTECTED, die zwar in der abgeleiteten Methode vorhanden ist, auf die du aber von Außen zugreifen willst Z.B. mit einem Codeblock

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Mi, 12. Apr 2017 7:16
von Manfred
die Var ist Exported. An Protected hatte ich auch zuerst gedacht. Jetzt habe ich sie in die Class gepackt, von der geerbt wird und es klappt. OK, von mir aus. Aber warum kann ich sie sehen im Debugger und sie hat einen Wert, aber es gibt trotzdem besagten Fehler? Ist mir derzeit absolut unverständlich.

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Mi, 12. Apr 2017 9:58
von georg
Hallo, Manfred -


der Debugger läuft auf einem anderen Level. Du kannst in einer Funktion ein Objekt anschauen und dort selbst iVars ansehen, die PROTECTED sind. Was im Debugger geht, kann Dein Programm möglicherweise nicht.

Daher wäre Code interessant: wie deklarierst Du die Variable, wie leitest Du die verwendete Klasse ab, wie greifst Du auf die iVar zu?

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 16. Mai 2017 7:45
von UliTs
Manfred, wo ist der Code? ;-)

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 16. Mai 2017 7:50
von Manfred
war nur eine reine rethorische Frage. Der Quellcode würde hier nicht weiterhelfen, bzw. wäre zu kompiziert aus dem Zusammenhang gerissen hier vernünftig darzustellen ohne neue Fragen aufzuwerfen. Ich habe es wie weiter oben erwähnt anders gelöst, aber nicht auf erledigt gestellt, weil das Problem als solches ja immer noch da ist. Mich aber derzeit nicht mehr stört.

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 16. Mai 2017 7:56
von UliTs
Ok, für mich hört es sich so an, als ob du auf eine in der abgeleiteten Klasse deklarierte Exportvariable in der Ursprungsklasse zugreifen möchtest.
Uli

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 16. Mai 2017 7:58
von Manfred
ja, ich denke mal, Du hast recht.

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 12. Nov 2019 18:09
von ij1972
georg hat geschrieben: Mi, 12. Apr 2017 9:58 Hallo, Manfred -


der Debugger läuft auf einem anderen Level. Du kannst in einer Funktion ein Objekt anschauen und dort selbst iVars ansehen, die PROTECTED sind. Was im Debugger geht, kann Dein Programm möglicherweise nicht.

Daher wäre Code interessant: wie deklarierst Du die Variable, wie leitest Du die verwendete Klasse ab, wie greifst Du auf die iVar zu?
Wie meinst du das?
Wie soll das möglich sein in einer Funktion die PROTECTED VAR anzeigen zu lassen?
Gruß

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Di, 12. Nov 2019 20:29
von georg
Hallo, ij1972 -


bitte genau lesen: "der Debugger läuft auf einem anderen Level". Der Debugger ist ein Programm-Entwicklungswerkzeug. Meine Aussage bezieht sich darauf, dass man als Programmierer im Debugger Variable sehen und ändern kann, die man im normalen Programm nicht sehen/ändern kann.

Wenn Du solche iVars ändern willst, dann musst Du eine entsprechende Methode in der Klasse definieren.

Re: bekannte Membervar angeblich unbekannt.

Verfasst: Mi, 13. Nov 2019 8:59
von ij1972
Danke für die Antwort. Dachte nur, es gebe eine Möglichkeit, die ich nicht kannte.
Gruß