Gargabe Collector und retain

  • Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    ?? Du siehst durch die Dot-Notation, dass du auf eine Struktur zugreifst? verstehe ich nicht, die meisten – einschließlich deiner vorhin – meinen meit, das das verschleiert wird.

    Hat aber immer noch nichts mit Dot-Notation zu tun:

    Quellcode

    1. NSRect funtion()
    2. {
    3. return NSMakeRect( 1, 2, 3, 4 );
    4. }
    5. funtion().origin.x = 23.5;

    Liegt bestimmt am Dot-Operator von Objective-C, dass der C-Code nicht funktioniert, nicht wahr. ;)


    klar darfst du das nicht. aber das sieht man ja auch. du bekommst von einer funktion/methode eine struktur und willst da was setzen. geht logisch nicht.

    Genau das macht self.superview.frame.origin.x

    gritsch schrieb:

    wenn ich ich schreibe [irgendwas irgendwasanderes].location dann weis ich dass irgendwasanderes eine struct liefert (weil ich den punkt verwende).
    bei irgendwas.irgendwasanderes.location weis ich das nicht (das sieht für mich als dot-notation-verachter aus als wäre irgendwas schon eine struktur.

    aber im prinzip ist es ja nur eine lesehilfe sonst nix.

    Wenn du nicht weißt, dass irgendwasanderes eine struct liefert, wie kannst du dann .location darauf anwenden? Hatten wir heute schon: Probierst du solange Buchstabenkombinationen aus, bis da zufällig der Bezeichner einer Komponente herauskomt?

    Schmarren. Du weißt ganz genau, dass es die Komponente location gibt, weil du ganz genau die Struktur kennst.


    es geht ums lesen von code nicht ums schreiben. das hab ich auch geschrieben. wenn dus ignorierst kann ich nix dafür!

    Ich ignoriere das nicht.

    1. Ich zitiere dich:
    "wenn ich ich schreibe [irgendwas irgendwasanderes]."

    2. Du weist schon, dass der Compiler den Code ablehnt?
    Wie kommst du jetzt also dazu, das zu lesen? Schicken dir Leute tonnenweise Code zu, der nicht funktioniert? Selbst geschrieben haben kannst du ihn ja nicht, es geht ja ums Lesen. Also muss dir irgendwie ständig buggy Code zufliegen.

    Ich glaube dir mal wieder jedes Wort. Du denkst dir schon wieder Märchen aus


    wenn ich fremden code debugge (und das passiert nicht so selten) sehe ich sofort bei was es sich um eine struct handelt und wo setter aufgerufen werden in denen was passiert oder observers drauf sitzen etc.

    Bei dem hier genannten Beispiel kommst du gar nicht bis zum Debugger. Deshalb kannst du da auch nichts übersehen. Das Ding kannst du nur lesen, bevor es kompiliert ist. Wie kommst du dann daran? Schicken dir Leute Code, der sich nicht compilieren lässt und du musst den dann analysieren?

    gritsch schrieb:

    deswegen SCHREIBE ich meinen code auch so wie ich ihn lieber LESE ;)

    Du wirst den obige Code überhaupt nicht schreiben. Deshalb wirst du ihn auch nicht lesen. Es geht darum, dass etwas bereits nicht kompiliert wird, nicht darum, dass zur Laufzeit wundersame Dinge geschehen.

    Deshlab geht es hier überhaupt nur um einen Fehler beim Schreiben. Aber schön, dass es dir jetzt auch wieder ums Schreiben geht. Das ist ja ein ganz schönes Gedankenkarussel bei dir.


    lies mal genauer. das mit der zuweisung kam von dir. ich hab schon vorher geschrieben dass das NICHT GEHT (also das zuweisen).

    arbeitest du nie mit fremdlibraries? manachmal auch c++ wie zb libxml++ etc.

    du musst einfach einsehen dass es auch andere meinungen gibt als deine (und hier gehts nur um MEINUNGEN bzw VORLIEBEN und sonst um nichts)
    Ich arbeite nicht mit Fremdlibrarys, die sich nicht kompilieren lassen. Insofern verstehe cih dein Problem nicht. Der zweifelhafte Code kann nicht von jemanden anderen stammen.

    Es geht hier auch nicht um Meinungen, auch nicht, wenn man sie schreit. Ob man solchen Code als Fremdcode bekommen kann, hängt allein davon ab, ob man mit Code arbeitet, der sich nicht compilieren läst. Ich mache das nicht. Du sicher auch nicht.

    Aber du kannst mir ja sagen, wo du das herbekommen hast. Würde mich interessieren.


    stellst du dich blöd oder bist dus?

    wer sagt denn dass der code nicht compiliert?
    ich will halt sehen wann ich eine obj-c methode aufrude und wann ich eine funktion eines c++ objects aufrufe oder eine struct verwende.
    wenn du das nicht bruachst dann ist das deine sache. ich verbiete dir die dot-notation ja nicht. ich hab nur gesagt dass ICH die nicht mag.
  • gritsch schrieb:

    Amin Negm-Awad schrieb:

    Das sagt der Compiler. Das hier angeführte Beispiel kompiliert nicht, weil links kein Lvalue steht.


    ich hab nie was anderes behauptet!

    Das hatte ich nciht gesagt.

    Du hattest gefragt: "wer sagt denn dass der code nicht compiliert?"

    Darauf antwortete ich: "Das sagt der Compiler."

    Ich dachte, du wärst froh, etwas gelernt zu haben.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    Das sagt der Compiler. Das hier angeführte Beispiel kompiliert nicht, weil links kein Lvalue steht.


    ich hab nie was anderes behauptet!

    Das hatte ich nciht gesagt.

    Du hattest gefragt: "wer sagt denn dass der code nicht compiliert?"

    Darauf antwortete ich: "Das sagt der Compiler."

    Ich dachte, du wärst froh, etwas gelernt zu haben.


    das bezog sich auf fremdcode (libs) der anscheinend nicht kompilieren sollte. dabei gehts aber nur darum zu unterschieden zwischen c++-funktionen, strukturen und obj-c methoden.
    was gibt es schöneres als code der nicht compiliert. da weis man ja gleich wo man ran muss. schlimmer ist es wenn er compiliert aber nicht funktionert...
  • Wenn du das hier angeführte Beispiel nicht schreibst, sondern nur liest, muss es sich in einer fremden Lib befinden. Dann kompiliert die nicht und du hast überhaupt kein Problem, weil du das sofort siehst.

    Oder aber du hast es selbst verbrochen. Abgesehen davon, dass es dann auch nicht kompiliert und du kein Problem hast, musst du dir dann bei der Eingabe von ".location" etwas gedacht haben und dabei müssen Strukturen und Komponenten eine Rolle gespielt haben.

    Aber wir können das Ganze abkürzen: Wo hast du ei Problem gehabt, weil ein Stück Code mit Dot-Notation zwar kompilierte, jedoch nicht das tat, was du vermutet hast. (Was hast du vermutet, was hat es getan?)

    ___________________________
    ___________________________
    ___________________________
    ___________________________
    ___________________________
    ___________________________

    Danke!
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Wenn du das hier angeführte Beispiel nicht schreibst, sondern nur liest, muss es sich in einer fremden Lib befinden. Dann kompiliert die nicht und du hast überhaupt kein Problem, weil du das sofort siehst.

    Oder aber du hast es selbst verbrochen. Abgesehen davon, dass es dann auch nicht kompiliert und du kein Problem hast, musst du dir dann bei der Eingabe von ".location" etwas gedacht haben und dabei müssen Strukturen und Komponenten eine Rolle gespielt haben.

    Aber wir können das Ganze abkürzen: Wo hast du ei Problem gehabt, weil ein Stück Code mit Dot-Notation zwar kompilierte, jedoch nicht das tat, was du vermutet hast. (Was hast du vermutet, was hat es getan?)

    ___________________________
    ___________________________
    ___________________________
    ___________________________
    ___________________________
    ___________________________

    Danke!

    es ging um 2 verschiedene sachen.
    einmal um den code der nicht compiliert (was ich ja gleich gesagt habe) und dann ging es um die lesbarkeit.
    es geht absolut nicht ums kompilieren.