1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Xcode und Applescript

Dieses Thema im Forum "AppleScript" wurde erstellt von Bomberzocker, 21.03.10.

  1. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Hi!
    Ja, ich weiß, es gibt dazu schon viel Thread, aber meine Frage(n) ist/sind ein wenig anders.
    Ich kann Applescript (kann AS verstehen und mit nachschlagen bekomm ich das hin was ich haben will), habe dies aber immer nur im Scripteditor gemacht. Jetzt wollte ich zu Xcode wechseln um dann später, wenn ich mit Xcode mich auskennen evtl. auf Objective-C oder Cocoa umsteigen.

    Soll ich mir ein Buch kaufen der lieber Tutorials im Internet nehmen?

    Meine Bedenken sind bei Büchern, das sie veralten, da es öfters neue Xcode Versionen gibt.
    Mit Turoials hab ich mich schon beschäftig, leider sind diese oft direkt mit Cocoa oder veraltet. Beispielsweise hatte ich ein gutes Tutorial welches im Interface Builder einen Applescript Reiter im Inspektor hatte und die jetzige Xcode Version hat gar keinen mehr.

    Geh ich vielleicht sogar falsch an das ganze dran? Sollte ich vielleicht doch besser direkt Objective-C oder Cocoa lernen?
    Da ich mich von der Webentwicklung erstmal wieder verabschiede und Applescripteditor zu simple ist muss nun Xcode dran. Und dann will ich nicht viel unnötige Zeit verschwenden. Muss das ganze jetzt neben der Schule machen, da mir das für den Beruf sehr wichtig ist. Ich nehm dann noch Informatik-LK da ich nach der Schule was in der Richtung Informatik studieren werde (vielleicht aber auch Gamedesign). Und dann ist Vorwissen sehr wichtig. Oder empfehlt ihr mir vielleicht wieder Webentwicklung zu machen? Was ist sinnvoller?
    mfg
     
  2. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Also erstmal um das klarzustellen: Xcode hat gänzlich wenig mit Objective-C und Cocoa zu tun. Es ist einfach der praktischste IDE für dessen Programmierung. Also kurz: Für Obj-C/Cocoa brauchst du keine Xcode-Kenntnisse, wobei diese natürlich von Vorteil sind. Du kannst aber auch eine Mac-Applikation mit Netbeans oder Eclipse erstellen. Da musst einfach noch mehr selber zusammenbasteln, was die Bundles usw. angeht.

    Nun zu AppleScript: Ich kenne mich damit nicht wirklich aus, aber du kannst dir mal die Teile der Dokumentation im Xcode, welche sich mit AppleScript-Applications befassen, durchlesen, wer weiss, vielleicht ist das für dich schon genug. Wegen dem AppleScript-Reiter: Da hat sich neu in Snow Leopard im Gegensatz zu Leopard einiges getan, die AppleScript Schnittstelle von Cocoa hat sich verändert, darum wird dieser Reiter wohl nicht mehr benötigt.

    Gruss ppocket
     
  3. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Aber du würdest Xcode auch empfehlen, oder? Ich hab jetzt was in der Dokumentation zu Applescript gefunden. Scheint wohl recht ausführlich zu sein. Hab jetzt nen halbes Dutzend Ornder, komische Dateien und AppleScripts rumfliegen. Gab es zum download als ich .html als Informationsart ausgewählt habe. Sehr strange.

    Objective-C oder Cocoa?
    Was wäre denn auch besser geeignet für Desktop-Anwendung? Kann man mit beiden Programmiersprachen iPhone Apps programmieren?
     
  4. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Nein, denn nur Objective-C eine Programmiersprache. Cocoa bzw. Cocoa Touch ist ein Framework, das in der Programmiersprache Objective-C geschrieben wurde. Erst mit beiden zusammen wird da ein Schuh draus.

    MacApple
     
  5. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Achso, dann hab ich ja nicht viel Auswahl :)
     
  6. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Stimmt, aber die wirst du nicht brauchen. Glaub mir "you'll love it"!! Cocoa ist das perfekte Framework um Mac-Applikationen zu erstellen. Eine vergleichbare Bibliothek findest du auf keinem anderen Betriebssystem auch nur annähernd :) Der grösste Vorteil daran ist ja, dass Apple selber seine Apps auch mit Cocoa macht. Das heisst "what they have, you'll have".

    Gruss ppocket
     
  7. Scotch

    Scotch Ananas Reinette

    Dabei seit:
    02.12.08
    Beiträge:
    6.240
    Mit welchen anderen Frameworks auf welchen anderen Betriebssystemen hast du denn bisher gearbeitet?

    Gruss,
    Dirk
     
  8. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Ich würde dir den Podcast "Xcode von NULL auf Hundert" empfehlen welchen du kostenlos in iTunes abonnieren kannst.
    Die haben auch eine Webseite: http://www.x02100.de

    Einfach mal reinschauen und wirken lassen :)
     
    Bomberzocker gefällt das.
  9. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    bis zu 10.5 gab es das tolle AppleScript Studio.
    Dieses hat Apple bedauerlicherweise abgeschossen. Das Template steht auch nicht mehr zur Verfügung.
    Lässt sich nachpflegen würde Dir aber langfristig nicht helfen.

    Statt dessen möchte Apple jetzt, dass Du AppleScriptObjC lernst.
    Meine Meinung dazu: Lass es gut sein.

    Beispiel: http://www.macosautomation.com/applescript/video/ASOC-001HD.html

    Haben wir schon mal debattiert: http://www.apfeltalk.de/forum/applescript-application-snow-t256181.html

    Wenn Du wirklich einsteigen möchtest dann ist Cocoa/Objective-C schon die beste Wahl.
    Bezogen auf die Tatsache, dass Du Dich auf das Mac OS X Umfeld konzentrieren möchtest.

    Viele Grüße
     
  10. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Ist das ein Neologismus oder gibt es das wirklich?

    Ich werde dann vermutlich direkt mit Objective-C anfangen.
     
  11. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Klar, gibt es das wirklich. Oder meinst Du ich habe mir das ausgedacht? ;)
    Ein Klick auf den ersten Link hätte es Dir auch gezeigt.

    Viele Grüße
     
  12. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    die erste Minute sah nur nach AS aus, ich hab heute nicht viel Zeit und kann mir das nicht ganz duchgucken. Habs mir aber gebookmarkt.
     
  13. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Also bei mir steht das in den ersten 10 Sekunden :D
     

    Anhänge:

  14. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Ah da, aber auch nicht in der Form: "AppleScriptObjC" :)
     
  15. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
  16. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Hab jetzt mal mit dem Xcode von Null auf Hundert angefangen und ein kleines Problem: Wenn ich das so wie im Video mache, meldet sich Interface Builder, dass irgendein Fehler vorliegt. Ich hab unter dem Punkt "Information" was anderes als im Video, deswegen hab ich wohl in was Falsches eingetragen. Die "Class Actions" und "Class Outles" wie im Video finde ich unter keinem anderem Reiter. Ich hab Xcode 3.21 und im Video (#002) ist es 3.1.

    Scheint bis jetzt sehr Ausführlich erklärt zu sein. Ich denke damit werde ich gut klar kommen. Bis auf die Diverenzen bei den Versionen.
    mfg
     

    Anhänge:

  17. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Die findest Du in Xcode 3.2 in der Library unter dem Tab Classes. Das Erstellen von Actions und Outlets im Interface Builder ist aber sowieso "old school" und nach meinem Empfinden umständlicher, als sie gleich direkt in den Quelltext zu schreiben. Der Interface Builder erkennt die dann automatisch.

    MacApple
     
    Bomberzocker gefällt das.
  18. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Wie schreibt man die den in den Code? Ich will das Video noch weitermachen, nur dann mit der besseren Variante.
     
  19. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Es gibt mehrere Möglichkeiten zB für Outlets:

    1) Du schreibst vor die Deklaration der Instanzvariable ein IBOutlet hin.

    Code:
    @interface MyClass : NSObject {
    [INDENT][COLOR="red"]IBOutlet[/COLOR] NSTextField *myTextField;
    ...[/INDENT]
    }
    
    ...
    
    @end
    
    Das myTextField wird dann vom Interface Builder erkannt.

    2) Du schreibst eine ganz normale Instanzvariable im Interface zwischen den Klammern und definierst dann eine property:

    Code:
    @interface MyClass : NSObject {
    [INDENT]NSTextField *myTextField;
    ...[/INDENT]
    }
    
    @property(assign) [COLOR="red"]IBOutlet[/COLOR] NSTextField *myTextField;
    ...
    
    @end
    
    Dabei ist es sehr wichtig, dass bei dem property-Typ, wie im Beispiel, assign und nicht was anderes steht (also nicht retain und nicht copy). Falls deine App keine weiteren Threads erstellt, würde ich assign, nonatomic empfehlen. Wichtig ist auch noch, dass diese zweite Möglichkeit nur funktioniert, wenn du Obj-C 2.0 verwendest.

    Für Actions geht das so:

    Du definierst im Interface eine ganz einfache Methode, nur mit IBAction als Rückgabewert. Diese Methoden haben alle als einziges Argument einen sog. Sender. Also das Objekt, welches diese Methode aufgerufen hat.

    Code:
    @interface MyClass : NSObject {
    [INDENT]NSTextField *myTextField;
    ...[/INDENT]
    }
    
    - ([COLOR="red"]IBAction[/COLOR])myAction:(id)inSender;
    ...
    
    @end
    
     
  20. Bomberzocker

    Bomberzocker Auralia

    Dabei seit:
    08.06.08
    Beiträge:
    202
    Ist das "myTextField" meine Bezeichnung für ein Objekt im InterfaceBuilder? Also muss ich das dann ersetzen?
     

Diese Seite empfehlen