Frage zu S.486

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Stimmt, macht er jetzt anders und erkennt, dass es um einen Getter geht. War früher anders. Das weiß ich ziemlich sicher, weil ich mich mal über die Fehlermeldung geärgert hatte, weil ich mir einen Wolf suchte, was er meinte. Da hat er alles, was er nicht per Dot-Notation auflösen könnte als unbekanntes Element einer Struktur angemosert.
    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"?
  • Stimmt übrigens auch nicht, was du sagst. Der Fehler kommt, wenn man Ivar und Accessoren weglässt. Und zwar deshalb, weil man die Accessoren weggelassen hat. Nur das interessiert ja außerhalb, siehe oben.

    Wenn man nur die Ivar weglässt, dann kompiliert er außerhalb einwandfrei und innerhalb kommt der erwähnte Fehler mit der fehlenden Ivar, siehe oben.

    Probier vllt noch einmal 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"?
  • Ja, hat ja ne gewisse Logik und ich glaube ich verstehe jetzt auch, was du in deinem vorherigen Post gemeint hast.
    Tja, das kommt davon, wenn man nur die eigene Meinung untermauern will und die anderen Aussagen nicht überprüft :rolleyes:
    Danke für die Aufklärung.


    Teddy
  • Aneinander vorbei gesprochen. Aber auch diese Fehlermeldung ist wohl neu. Sie wäre mir ja schon einmal über den Weg gelaufen, wenn ich mich außerhalb vertippe. Ich kann mich aber nicht daran erinnern, sie jemals gesehen zu haben.

    Die Fehlermeldungen des gcc sind ohnehin nur als Key auf ein Erfahrungsdictionary zu gebrauchen. Selbsterklärend ist etwas anderes. Umgekehrt hatte ich dafür bei MS-Compilern/C++ immer das Problem, dass der Fehler gefühlte 2348762843628 Zeilen später angemosert wurde.
    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"?
  • Original von Amin Negm-Awad
    Die Fehlermeldungen des gcc sind ohnehin nur als Key auf ein Erfahrungsdictionary zu gebrauchen. Selbsterklärend ist etwas anderes. Umgekehrt hatte ich dafür bei MS-Compilern/C++ immer das Problem, dass der Fehler gefühlte 2348762843628 Zeilen später angemosert wurde.

    Ja, dass man den Compiler nicht die ganze Arbeit machen lassen kann, habe ich auch schon merken müssen, aber zum Glück gibt es ja im Notfall noch Foren wie dieses, in welchem man zusätzliche Gehirnkapazität abrufen kann ;)


    Teddy
  • Ich habs mal so probiert:

    Quellcode

    1. - (void)showInfoWindowForPerson:(NSManagedObject*)person {
    2. NSEnumerator* wcEnum = [[self windowControllers] objectEnumerator];
    3. NSWindowController* wc;
    4. PersonInfoWC* personWC= nil;
    5. NSManagedObjectID* personID = [person objectID];
    6. // Alle bestehenden Window-Cotnroller ueberpruefen
    7. while( ( wc = [wcEnum nextObject]) ) {
    8. // Ist es ueberhaupt ein Person-Info-WC?
    9. if( [wc isKindOfClass:[PersonInfoWC class]] ) {
    10. personWC = (PersonInfoWC*)wc;
    11. // Hat er dieselbe Person-ID?
    12. if( [[person objectID] isEqualTo:personID] ) {
    13. //////////
    14. break;
    15. //////////
    16. }
    17. }
    18. }
    19. // kein Window-Controller gefunden, also erzeugen
    20. if( wc == nil ) {
    21. personWC = [[[PersonInfoWC alloc]
    22. initWithWindowNibName:@"Person"]
    23. autorelease];
    24. [personWC setPerson: person];
    25. [self addWindowController:personWC];
    26. }
    27. // nach vorne damit
    28. [personWC showWindow:self];
    29. }
    Alles anzeigen


    Aber:Es öffnet sich ein Info-Fenster für die 1. angewählte Person. Ein zweites für eine weitere Person kann nicht mehr geöffnet werden.
  • Original von Luigi
    Ich denke es hat etwas mit der Code-Zeile 12 zut tun:

    Quellcode

    1. if( [[person objectID] isEqualTo:personID] ) {

    Den Dowload-Code kann ich nicht testen.

    Sagen wir es so: Dort erscheint der Fehler. Das sagt aber noch nichts darüber aus, ob das die Ursache ist.


    Wieso kannst du den Download-Code nicht testen?
    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"?
  • Ich kann ihn kopieren und dann testen (Tiger!!). Dann erscheinen folgende 4 Fehlermeldungen:

    Quellcode

    1. for( wc in [self windowControllers] ) {
    error: parse error before "in"
    Ich habe das korrigiert mit:

    Quellcode

    1. NSEnumerator* wcEnum = [[self windowControllers] objectEnumerator];
    2. while( ( wc = [wcEnum nextObject]) ) {


    Quellcode

    1. if( [[personWC.person objectID] isEqualTo:personID] ) {
    error: request fpr member "person" in something not a structure or union

    Quellcode

    1. break;
    error: break ststement not within loop or switch

    Quellcode

    1. }
    error: parse error before "}" token
  • Original von Lucas de Vil
    Funktionierte die Dotnotation unter Tiger schon?
    +kopf kratz+
    Da er beim 'in' rummeckert, vermute ich mal das nicht.

    ARGS! Klar, das darf er ja gar nicht verwenden. Du hast Recht, hatte ich auch nicht dran gedacht.

    @Luigi: Bitte schaue im Buch vorne nach, wie das zu ersetzen ist. Du solltest aber noch mehr dringend über Leo oder Snow Leo nachdenken. Warst du nicht der mit dem störrischen Chef? Der soll mich anrufen, Telefonnummer müsstest du auf der Internetseite finden. Das ist ja Programmiererquälerei der schlimmsten Sorte.
    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"?
  • Lieber Amin
    Ja das sollte ich wirklich. Bis jetzt habe ich es ja ganz gut machen können und anstatt @property die zwei Zeilen im Header und anstatt @synthsize die sechs Zeilen Getter und Setter geschrieben; und anstatt wc.person = person; brav [wc setPerson:person]; geschrieben. Und dabei viel gelernt. Aber es ist schon mühsam.
  • Original von Luigi
    Eigentlich muss ich nur wissen, wie ich in

    Quellcode

    1. if( [[personWC.person objectID] isEqualTo:personID] ) {

    die objectID hole, die in personWC.person ist, oder?

    es mpsste dann wohl – ich habe jetzt nicht nachgeschaut

    Quellcode

    1. if( [[[personWC person] objectID] isEqualTo:personID] ) {

    heißen. Einfach immer den Punkt weg und dafür [] drumherum. (Bei einem Getter)
    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"?
  • Original von Luigi
    Und siehe da es ging. Einfach so. Wow!!! Super!!!
    Herzlichen Dank.
    Bin trotzdem motiviert snowLeopard zu haben.

    Vor allem bin ich so langsam motiviert, dass du Snow Leo hast … *g*
    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"?