#012: Der iPhone-Taschenrechner (43:36 Minuten)

#012: Der iPhone-Taschenrechner
Wir versprochen bringen wir unseren Taschenrechner aufs iPhone.
Dank des Model-View-Controller-Prinzips können wir die Datenverarbeitung - also das Model - komplett übernehmen. Die Benutzeroberfläche wird natürlich neu gemacht, der Funktionen im Controller müssen leicht angepasst werden. Bei der Gelegenheit achten wir auch auf Lokalisierung (in Deutschland haben wir ja das Dezimalkomma, in englischen Raum den Dezimalpunkt).

Links:
  • Retain, Release und Autorelease
  • #008: Das Taschenrechner-Projekt (Teil 1)

    Quelltexte:
  • PhoneTaschenrechner.zip (dies ist das Projekt aus dieser Folge, plus der GUI-Vorlage als .xib-Datei)
  • Taschenrechner_chic.zip (dies ist der Mac OSX-Taschenrechner, also die Vorlage für diese Folge)
    Trackbacks:
    http://www.mac-talk.eu/entwickler/71-videotutorials-zu-objective-c.html
    33 Kommentare | Permalink | Trackback-Info | Film in HD ansehen!

  • Anzeige / Partnerlink

    Kommentar hinzufügen

     
    Name:
    Email (optional):
    Text:
    Sicherheitscode:
    Bitte geben Sie hier die unten abgebildete 5-stellige Zahl aus dem Bild ein!
    Um die 1 besser von der 7 unterscheiden zu können, hat die 1 unten immer einen waagerechten Strich.

    33. Cristian P am 27. Jul 2010, 17:44 Uhr

    Hallo! Das schreibe ich für die wenige die so spät dieser Folge noch machen:
    Problem: im iPhone Simulator nachdem alle Änderungen durchgeführt worden sind (laut Video), bei drucken der Zahlen passiert nichts...

    Lösung: die Tags nicht vergessen einzutragen.

    32. Maurice am 29. May 2010, 14:42 Uhr

    Hallo ihr beiden!
    Ein großes Kompliment an euren Videocast, ich bin wirklich begeistert! Ihr investiert mit Sicherheit sehr viel Zeit dafür. Das find ich bemerkenswert!
    Ich hab ein Problem mit der Ausgabe meiner Zahlen auf dem iPhone Simulator. Egal, welche Zahl ich drücke, sie wird nicht angezeigt. Wenn ich ein Komma setze, wird für jede Zahl, die ich danach drücke, eine "0" hinter das Komma gesetzt. Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet. Danke!

    31. Pascal am 11. Apr 2010, 19:51 Uhr

    Echt ein super Videocast!

    Ich hab das Abo schon vor einigen Wochen gemacht, aber erst vor kurzem angefangen, die Folgen zu gucken!

    Der iPhone Taschenrechner läuft, sogar auf dem iPhone und dank Peters Tip sogar mit einem netten Icon :)

    Diese DIV/0 Fehlermeldung hattet ihr ja dann im eigentlichen Model des Taschenrechners nicht mehr implementiert. Bekomme das aber gerade auch irgendwie nicht mehr hin...

    Ansonsten: Daumen hoch! Kanns kaum erwarten, weiter zu kommen! Ein paar Folgen gehen heute Abend aber schon noch :)

    30. Chris am 21. Mar 2010, 19:41 Uhr

    Da es sich bei den Buttonstates um Bitmasken handelt, kann man das auch eleganter lösen:
    UIControlState allStates = UIControlStateNormal | UIControlStateHighlighted | UIControlStateSelected | UIControlStateDisabled;
    [commaButton setTitle:[numberFormatter decimalSeparator] forState:allStates];

    29. Stefan am 14. Feb 2010, 10:59 Uhr

    ok. Einmal drüber schlafen und noch mal den Code anschauen hilft dann doch. Hab in der GUI vergessen einige Verbindungen zu ziehen. Und nicht alle Ziffern hatten Tags.

    28. Stefan am 13. Feb 2010, 22:24 Uhr

    Hallo,

    ganz toller Videopodast. Höre seit heute morgen 12 Folgen am Stück. Ich hab ein kleine sProblem mit dem iPhone Taschenrechner. Leider reagiert die Anzeige nicht auf die Eingabe der Zahlen und beim Drücken der +/- Taste stürzt das Programm ab. Kann mir vielleicht jemand weiterhelfen, das wäre fein. lg aus Wien

    http://dl.dropbox.com/u/2765288/iPhoneTaschenrechner.zip

    27. JP am 9. Oct 2009, 21:34 Uhr

    Könntet ihr nich ma ein iphone spiel coden???

    26. -->p@+!<-- am 9. Oct 2009, 21:08 Uhr

    @Andreas am 4. Oct 2009, 21:48 Uhr
    @peter am 4. Oct 2009, 21:56 Uhr
    @alle_die_iPhone_haben;
     - Wegen ausprobieren von apps auf iPhone;
    Klickt mal auf diesen Link :

    http://www.apple.com/downloads/macosx/apple/application_updates/iphoneconfigurationutility21formacosx.html

    Das [iPhone configuration utility 2.1] for Mac OS ist ein Programm , das eigentlich für Unternehmen wo jeder mitarbeiter ein iPhone hat gedacht ist. Mit ihm lassen sich iPhone "Profile" erstellen. In so nem Profil lassen sich z.B. Wi fi , Sperrcode oder andere Einstellungen definieren. Dieses Profil  wird dann per email an die iphones verschickt und darauf dann installiert. Egal, es gibt allerdings eine funktion, dass Firmen, die ihre selbst programmierten apps fürs iPhone haben, diese in ein Profil mit einfügen  können. Ich weiß nicht ob das auch jeder andere der nich grad n Chef von ner Firma ist machen kann ;) (also seine selbst programmierten apps in ein Profil einzufügen) weil runterladen und Profile erstellen und ans iPhone via USB oder email schicken geht auf jeden Fall ...

    P.S. : Ich Kann es nicht ausprobieren weil ich (sch**** aber wahr) keinen Mac hab sry

    @alle_die_iPhone_haben
    Wenns klappt könnt ihrs ja hier reinschreiben
    Obs mit iTouch auch geht weiß ich nich...

    @peter&ingo
    Wenn ich vielleicht in 5 Jahren n mac hab werd ich alle Videos noch irgendwo drauf haben ehrlich

    25. Gummiball am 6. Oct 2009, 21:37 Uhr

    Hallo Peter.

    Das freut mich aber das es noch lange weiter geht. DAUMEN HOCH!

    Am Freitag ist mein Buch von Aaaron Hillegass gekommen. Ich finde das Buch klasse. Habe auch den Schinken "Objective-C und Cocoa" hier liegen und ich denke mit den beiden Büchern werde ich gut arbeiten können. Bin auch über diese Stelle im 3.Kapitel gestoßen (Seite 36, Speicher für 10 NSNumber reservieren, aber nicht wieder freigeben. Korrekt?) Denke aber auch das man wirklich nicht alles auf einmal lernen soll. Immer schön der Reihe nach.

    Da ich mich beruflich auch mit der Programmierung auseinander setze (C, Java, C#) bin ich schon ein wenig gebrandmarkt und einige Sachen fallen mir doch schwer. Aber das kriege ich schon hin.

    24. peter am 6. Oct 2009, 20:35 Uhr

    @MCplusplus:
    Klingt so, als ob Du das Ende gar nicht erwarten kannst :o)

    Dieses Ende ist nach wie vor nicht geplant bzw. in Sicht. Wir werden zusehen, dass wir sowohl Mac OS X als auch iPhone OS nicht aus den Augen verlieren. Da wir bisher nur ganz oben an der Oberfläche kratzen, kann es aus unserer Sicht noch sehr lange weiter gehen.

    Peter

    23. MCplusplus am 6. Oct 2009, 20:16 Uhr

    Eine Frage. Wie viele Folgen wird es voraussichtlich noch geben? Wird noch weiter auf die Desktop Programmierung, also am Mac eingegangen oder bleibt es jetzt bei der iPhone Programmierung?

    22. ingo am 6. Oct 2009, 10:41 Uhr

    @M.F.:
    Wir richten zur Zeit ein Forum ein. Wenn es soweit ist, dann würden wir uns freuen, wenn Du entsprechende Bücher dort empfehlen kannst!

    21. M.F. am 6. Oct 2009, 07:08 Uhr

    @ingo
    Ich sag ja nicht, dass der Hillegass kein gutes Buch ist. Nur hat dieses Buch längst nicht mehr dieses Alleinstellungsmerkmal von früher. Gerade für Eure Zielgruppe "Anfänger" gibt es inzwischen Besseres.
    Zum Sprachgebrauch. Ich halte es kontraproduktiv, einem Anfänger nicht von Anfang an die richtigen Begriffe an die Hand zu geben. Das führt früher oder später zu Missverständnissen. Eure Zielgruppe wird Euch auch noch verstehen, wenn Ihr Methoden auch Methoden nennt. Gerade die Programmierer, die in Foren anderen helfen, legen Wert auf korrekte Begrifflichkeiten, sonst redet man aneinander vorbei. Das trifft übrigens nicht nur im Programmierbereich zu, sondern grundsätzlich überall.

    20. risetothesky am 6. Oct 2009, 06:46 Uhr

    Ich habe gerade noch einen netten Bug für euch gefunden. Würde mich interessieren ob der bei euch auch so ist.:
    Taschenrechner im iPhone Simulator starten und dann 99,3 - 100 rechnen... bei mir kommt dann -0,70000000000003 raus. Komische Sache, da wir ja mit double rechnen.

    19. ingo am 5. Oct 2009, 22:52 Uhr

    @M.F.
    Danke für die Kritik! (ehrlich!)

    Wir haben aber auch eine gute Ausrede:
    Genau wie Hillegass sind wir der Meinung, dass man nicht von Anfang an alles richtig machen muss. Viel wichtiger ist es, dass die Konzepte verstanden werden. Daher erklärt Hillegass das Speichermangement auch direkt im Anschluss in Kapitel 4. Wenn wir oder Hillegass direkt mit Speichermanagement in Fachsprache anfangen würden, dann versteht uns leider kein Anfänger mehr (und Peter gar nicht mehr :), und an den Anfänger richtet sich unser Podcast nunmal.

    Und ja, es gibt einen Unterschied zwischen Methode und Funktion. Nach und nach ergänzen wir präzise Definitionen in unseren Grundlagenartikeln; unsere Texte sind entsprechend in den korrekten Termini gehalten. Im allgemeinen Sprachgebrauch unter Programmierern verschwimmt dieser aber nunmal. Damit unsere Zuhörer also auch andere Programmierer in Foren und an Stammtischen verstehen, sprechen wir auch so... ;)

    18. M.F. am 5. Oct 2009, 22:08 Uhr

    So, jetzt muss ich auch mal ein bisschen den Spielverderber geben. ;-) Zwei Dinge stören mich jetzt schon seit mehreren Folgen.

    1. Ihr macht keinen Unterschied zwischen „Funktion“ und „Methode“. Da besteht aber einer und deshalb solltet Ihr auch die Dinge auch so benennen, wie sie sind.

    2. Euer <gääähhhnn> Buchtipp. Langweilig, langweilig, langweilig. Früher, ja da war das mal die Bibel für Cocoa Programmierung, aber inzwischen, ist es nur noch eines unter mehreren guten Büchern. Wenn ich sehe, dass der Hillegass gleich im ersten Codebeispiel (Kapitel 3) ordentlichen Speicherlöcher produziert, dann verstehe ich nicht, wie man dieses Buch so hoch jubeln kann.

    17. peter am 5. Oct 2009, 19:13 Uhr

    @risetothesky:
    Der LCD-Hintergrund ist ein separates UIView, das wir auf die richtige Größe gezupft und eingefärbt haben. Lad mal das PhoneTaschenrechner.zip; das von uns importierte xib liegt da auch separat bei (ohne Verknüpfungen der Outlets und Actions). Da kannst Du es Dir nochmals ansehen.

    Peter

    16. risetothesky am 5. Oct 2009, 18:55 Uhr

    Habe auch noch eine Frage:
    und zwar würde mich interessieren wie ihr das mit dem Anzeigefeld (UILabel) realisiert habt, dass ihr da so einen schönen grünen Hintergrund habt und alles. Muss ich dazu zwei Labels übereinander legen, das eine mit Hintergrund und ohne Text, das andere ohne Hintergrund und mit Text? Oder ist es möglich ein Rechteck zu erstellen bzw. den Randabstand des Labels zu ändern?

    Freue mich schon auf das Forum :)

    Gruß,
    risetothesky

    15. peter am 4. Oct 2009, 23:46 Uhr

    @Andreas:
    Ich habe soeben einen Screencast aufgenommen der zeigt, wie man seiner App ein Icon spendiert. Ist unter Tipps einsortiert.

    Peter

    14. ingo am 4. Oct 2009, 22:43 Uhr

    @Speedy:
    Cool, danke für den Tipp! Das ist vermutlich erst seit 3.0 oder 3.1 so. früher klappte das nämlich nicht und man musste alle nötigen Stati setzen. Hat mich immer geärgert. Man sollte öfters in die Doko gucken! :)

    13. Dünser Mathias (Speedy) am 4. Oct 2009, 22:26 Uhr

    Hi Jungs, tolle Folge.

    Kleine Anmerkung:
    Bei mir funktioniert der Komma-Button auch, wenn ich nur den State UIControlStateNormal angebe.

    Also ohne:
    [commaButton setTitle:[numberFormatter decimalSeparator] forState:UIControlStateHighlighted];
    [commaButton setTitle:[numberFormatter decimalSeparator] forState:UIControlStateSelected];

    Ist auch ausreichend, da in der Dokumentation steht "In general, if a property is not specified for a state, the default is to use the UIControlStateNormal value."

    Also doch nicht so "unschön" ;)

    Macht weiter so, bin Sonntag Abends auch immer dabei ;)

    12. Andreas am 4. Oct 2009, 22:06 Uhr

    Ach so.. Schade. Aber wie füge ich denn ein Icon ein?

    11. peter am 4. Oct 2009, 21:56 Uhr

    @Andreas:
    Das Icon ist nicht das Problem - für das Ausprobieren auf dem touch musst Du Dir einen kostenpflichtigen Account bei Apple besorgen ...

    Peter

    10. Andreas am 4. Oct 2009, 21:48 Uhr

    So, ich habe mein Projekt nochmals ein wenig verändert, jetzt möchte ich dieses jedoch noch mit einem icon versehen, und mal auf meinem iPod touch ausprobieren.
    Wie mache ich das?

    9. peter am 4. Oct 2009, 21:25 Uhr

    @Andreas:
    Ich schau mir Dein Projekt gleich mal an, aber momentan vertröstet mich Rapidshare nur mit dem Hinweis, dass kein Slot verfügbar sei ;)

    Peter

    8. Andreas am 4. Oct 2009, 20:38 Uhr

    Hey, vielen Dank! Das habe ich doch glatt vergessen :D

    7. Christian am 4. Oct 2009, 18:41 Uhr

    @ Andreas:
    Schöne Idee mit dem Gui. Hab mal schnell drüber geschaut und du hast einfach vergessen die Button-Tags für die digits hinzuzufügen. Denn der Tag wird ja beim Drücken der bspw Plus-Taste abgefragt. Füge die Tags bei den digit-Buttons hinzu und dann siehst du sie auch im digitdisplay.

    Grüße
    Chris

    6. Andreas am 4. Oct 2009, 17:17 Uhr

    Hi

    Ich habe am GUI herumgebastelt. Nun funktioniert der Taschenrechner jedoch nicht. Weiss jemand von euch wieso?

    http://rapidshare.com/files/288599443/PhoneCalc.zip.html

    5. Gummiball am 4. Oct 2009, 15:52 Uhr

    Sehr schöne Folge.

    Danke Euch beiden und einen schönen Sonntag noch.


    3. ingo am 4. Oct 2009, 12:53 Uhr

    Hoppla, vergessen freizugeben :-/ Sorry dafür! Jetzte ist es da!

    2. am 4. Oct 2009, 12:51 Uhr

    Mir kribbelts auch schon in den Fingern. ;)

    1. Christian am 4. Oct 2009, 12:44 Uhr

    Und wo finde ich das Video? Weder hier noch im iTunes bekomm ich das angezeigt?