Einstig Schwierigkeiten mit Xcode 6 in Objectiv c

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

  • Einstig Schwierigkeiten mit Xcode 6 in Objectiv c

    Halli Hallo,
    da ich schon relativ am ende meines Studiums bin und mir in den Ferien langweilig war und natürlich (der Hauptgrund) weil ich mir ein Macbook gekauft habe, versuchte ich mir Objective C anzueignen. Das Consolenprogrammieren hat schon mal ganz gut funktioniert und ich war von dem Xcode Comfort gleich angetan. Ich muss dazusagen ich bin jetzt eig. kein Programmierer aber in meinem Studium (Physik) erlerne ich mir C sowie C++ und habe damit schon einige Wochen-Monate verbracht :). Ich wollte dann auch gleich mal, weil das bei c++ (Visual Studio) i.N. nicht so leicht funktioniert, eine Application erstellen. Habe mir dazu eine Anleitung besorgt (download.cocoalab.com.s3.amazo…ecomeAnXcoder(German).pdf) bzw. folgendes Video ([media]https://www.youtube.com/watch?v=CgrDSW0dHy4[/media]). Beim die Sache nach zu "programmieren" hatte ich jedoch einige Schwierigkeiten, da sich anscheinend vieles bei Xcode geändert hat.
    Meine Anwendung sollte einfach Fenster mit einem Button und einem Textfeld sein. Ich ging nun folgendermaßen for.
    Neue Cocoa Klasse: AppControll;

    AppControll.h

    #import <Foundation/Foundation.h>

    @interface AppControll : NSObject{
    IBOutlet id textfeld; //NSTextField *lable wird nicht erkannt!? im video schon
    }
    -(IBAction)setTo5:(id)sender;
    @end


    im AppControll.m

    #import "AppControll.h"

    @implementation AppControll
    -(IBAction)setTo5:(id)sender{
    [textfield setInteger:5 forKey:textfield]; //setIntValue... wird nicht erkannt!? in der Beschreibung schon
    }
    @end


    Würde mich freuen wenn mir jemand helfen kann und evtl. ein Tutorial (Guide) weis der auch für Xcode 6 noch stimmt.
    thx lg
    maths
    PS: Ich nehme auch gerne alle (guten) Ratschläge für einen Einstig in die mac application Programmierung an. :)
  • nussratte schrieb:

    dein AppControl, sollte dann aber schon eine View (bzw. window, ich weiss nicht wie das bei MacOSX ist) sein


    Nein! Der Application-Delegate erbt i.a. von NSObject, weitere Anforderungen gibt's nicht. Im übrigen gilt bei iOS für den App-Delegate das gleiche.

    Ich würde aber den Typ vom Outlet "textfield" von id auf "NSTextField *" ändern, dann klappt's auch mit dem setIntValue. Na ja, klappen würde es jetzt auch, Xcode wird's hier halt nur nicht vorschlagen, weil der Typ eben nicht bekannt ist.

    Ansonsten: Alles korrekt im IB verbunden? Also Outlets und Actions?

    ciao

    gandhi
  • danke für die promote Antwort!

    @gandhi
    #import <Foundation/Foundation.h>
    @interface AppControll : NSObject{
    //@private
    IBOutlet NSTextField *textfield; //NSTextField *lable wird nicht erkannt!?
    }
    -(IBAction)setTo5:(id)sender;
    @end

    der Befehl NSTextField gibt einen Fehler (ERROR) dh. es funktioniert leider nicht!

    Ich denke ich habe Outlets und Actions korrekt mit dem einem Objekt (custom class AppControll) verbunden.

    Weis irgendjemand einen anderen Weg ein Textfeld oder auch Label mit IBOutlet anzusprechen??
    lg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von maths ()

  • Ich habe die Lösung gefunden!!
    Keine Ahnung ob das der beste weg ist aber ich denke man benötigt <Cocoa/Cocoa.h> für NSTextField. Dh. habe ich "AppDelegate.h" in AppControl importiert und jetzt klappt es :)

    PS..das dürfte übrigens in Xcode 5 noch anders gewesen sein, denn im Video wurde nichts included!
  • Klar, <Cocoa/Cocoa.h> musst Du importieren,sonst geht nix. Je nachdem wie Du den Sourcecode für die Klasse erzeugt hast, wird das automatisch hinzugefügt oder eben auch nicht.

    Zum Thema Video und Xcode5: Traue keinem Video, das Du nicht selbst gemacht hast :D . Auch bei Xcode 5 muss man selbstverständlich die jeweils benötigten Header importieren. Das hat mit der Xcode-Version so rein gar nix zutun. Das ist ein Sprachfeature von Objective-C (bzw. allen C-Dialekten). Das "#import"-Statement ist nur etwas intelligenter als das aus C und C++ bekannte "#include"

    ciao

    gandhi