Gargabe Collector und retain

  • Lupurus schrieb:

    Hallo,
    da ich an einer Cocoa-Applikation für Mac OS arbeite,...
    Jau, der GC ist ziemlicher Muell. Als ich damals damit rumgespielt hab, hat er mir auch ab und zu mal etwas unterm Hintern weggeloescht.

    ARC finde ich jetzt nicht besser, aber das failed wenigstens deterministisch und du kannst den Fehler nachvollziehen.

    Wobei Reference-Counting ist ja nicht so kompliziert; Ich sehe keinen Grund warum man jetzt unbedingt automatisches Memory Management mit Cocoa brauchen sollte.
    I like potatoes!
  • Markus Müller schrieb:

    Soweit ich das verstanden habe, ist der ARC-fähige Compiler (llvm3) erst bei Xcode 4.2 dabei. Mal wieder stehen die Mac-Developer (ohne iOS Devaccount) im Regen, denn Xcode 4.2 gibt's derzeit für uns noch nicht. Oder bin ich zu blöd es auf developer.apple.com zu finden?
    den kann man sich doch auch für Xcode 3 compilieren. also auch für 4.0 und 4.1 etc.
    Kann man, ja. Aber warum bekommen es die iOS-Developer auf dem Silbertablet geliefert und alle anderen nicht? Wenn ich den Compiler selber bauen wöllte, hätte ich keinen Mac...
  • Markus Müller schrieb:

    Markus Müller schrieb:

    Soweit ich das verstanden habe, ist der ARC-fähige Compiler (llvm3) erst bei Xcode 4.2 dabei. Mal wieder stehen die Mac-Developer (ohne iOS Devaccount) im Regen, denn Xcode 4.2 gibt's derzeit für uns noch nicht. Oder bin ich zu blöd es auf developer.apple.com zu finden?


    den kann man sich doch auch für Xcode 3 compilieren. also auch für 4.0 und 4.1 etc.

    Kann man, ja. Aber warum bekommen es die iOS-Developer auf dem Silbertablet geliefert und alle anderen nicht? Wenn ich den Compiler selber bauen wöllte, hätte ich keinen Mac...


    weil sie dafür zahlen?! grund genug...?
  • superking schrieb:

    Amin Negm-Awad schrieb:

    chartus schrieb:

    Die benutze ich sehr gerne und verstehe nicht, wo das Problem liegen soll.

    zb sowas:

    Quellcode

    1. self.superview.frame.origin.x = 23.5;


    warum klappt das denn jetzt nich? ;)

    Das gehört zu den Dingen, sorry, bei denen ich mich frage, ob die Leute nachdenken, bevor sie coden.


    Klapt es denn ohne Dotnotation?

    Quellcode

    1. [[self superview] frame].origin.x = 23.5;


    Wir merken also: Sinnloser expliziter Code wird nicht dadurch sinnvoll, dass man ihn in Dot-Notation verpackt. Übrigens liegt das Problem hier nicht bei der Dot-Notation, sondern bei der Struktur. Nur so am Rande.
    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"?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Amin Negm-Awad ()

  • superking schrieb:

    Lupurus schrieb:

    Hallo,
    da ich an einer Cocoa-Applikation für Mac OS arbeite,...
    Jau, der GC ist ziemlicher Muell. Als ich damals damit rumgespielt hab, hat er mir auch ab und zu mal etwas unterm Hintern weggeloescht.

    ARC finde ich jetzt nicht besser, aber das failed wenigstens deterministisch und du kannst den Fehler nachvollziehen.

    Erzähle mal.

    superking schrieb:

    Wobei Reference-Counting ist ja nicht so kompliziert; Ich sehe keinen Grund warum man jetzt unbedingt automatisches Memory Management mit Cocoa brauchen sollte.

    Es erspart Langeweile.
    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:

    superking schrieb:

    Amin Negm-Awad schrieb:

    chartus schrieb:

    Die benutze ich sehr gerne und verstehe nicht, wo das Problem liegen soll.

    zb sowas:

    Quellcode

    1. self.superview.frame.origin.x = 23.5;


    warum klappt das denn jetzt nich? ;)

    Das gehört zu den Dingen, sorry, bei denen ich mich frage, ob die Leute nachdenken, bevor sie coden.


    Klapt es denn ohne Dotnotation?

    Quellcode

    1. [[self superview] frame].origin.x = 23.5;


    Wir merken also: Sinnloser expliziter Code wird nicht dadurch sinnvoll, dass man ihn in Dot-Notation verpackt. Übrigens liegt das Problem hier nicht bei der Dot-Notation, sondern bei der Struktur. Nur so am Rande.


    und dass man auf eine struktur zugreift sieht man eben durch die dot-notation.
  • ?? 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. ;)
    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:

    ?? 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.

    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.
  • 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 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:

    ?? 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!
  • 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
    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:

    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.

    deswegen SCHREIBE ich meinen code auch so wie ich ihn lieber LESE ;)
  • 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.
    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:

    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)
  • 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.
    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"?