Anfänger: Wie bekomme ich eine Berechnung auf dem iPhone angezeigt?

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

Macoun 2019 - Frühbucherrabatt bis 26.7.2019

  • Anfänger: Wie bekomme ich eine Berechnung auf dem iPhone angezeigt?

    Hallo,


    Gewünschtes Ergebnis:

    Ich gebe die Anzahl der Löcher (Golf) an die ich gespielt habe (18)
    Ich gebe die Anzahl der Schläge an die ich benötigte (35)
    Nach klick auf calcNow soll im Feld: averageField das Ergebnis erscheinen. (1.94)


    Kann mir Jemand sagen warum folgender Code mir das Ergebnis nicht
    anzeigt?

    - (IBAction)calcNow:(id)sender {

    int holes = [[holesField text] intValue]; // Aus der Eingabe wird ein int
    int strokes = [[strokesField text] intValue]; // Aus der Eingabe wird ein int.
    double result = strokes / holes; // Es wird gerechnet
    [averageField setTag:result]; //Dachte damit bekomme ich das Ergebnis ins Feld.

    }

    Die Felder sind im IB korrekt angelegt und verknüpft.

    Idee?

    Gruß,
  • Mac & i Test Abo
  • zunächst einmal ergibt eine integer division bestimmt nicht das Ergebnis das du haben möchtest und zweitens habe ich keine Ahnung wie Du auf die Idee kommst, dass die property tag irgendwas mit dem angezeigten Text eine Textfields zu tun hat. Lies doch einfach mal die Doku zu UITextField.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Ist alles noch neu für mich und ja ich lese ein Buch darüber.


    Was ich denke verstanden zu haben im Detail:

    - (IBAction)calcNow:(id)sender {

    int holes = [[holesField text] intValue];


    > Das ich überhaupt mit dem was der User über das GUI an
    > Zahlen eingibt rechnen kann muss ich doch die Werte konvertieren?


    > War der Meinung das mache ich hiermit > [[holesField text] intValue];
    > Dann speichere ich den Wert als int in der Variablen holes mit diesem Befehl > int holes =
    >
    > Warum brauche ich bei Löcher und Strokes schon Double?
    > Dachte nur die Variable die das Ergebnis speichert muss Double sein.
    > (Holles und Strokes kommen nur Ganzzahlen rein)

  • Zunächst mal, wie gesagt, rechnest du nicht mit Integern.
    Also, DU tust es schon, solltest du aber nicht. ;)

    Zweitens machst du Folgendes:
    Textfelder bitten: sag mir deinen Text.
    Texte bitten: sag mir den Doublewert, den du hast.
    Quotienten der beiden Doublewerte errechnen.
    Text mit diesem Quotienten erstellen.
    Textfeld bitten: nimm diesen Text als deinen Wert.

    Merke: wenn du über [textfeld text] an den Text kommst, dann setzt du ihn mit [textfeld setText:@"text"].
    Auf Nicht-iOS heißt das übrigens verwirrenderweise -stringValue und -setStringValue:

    Also:

    C-Quellcode

    1. - (IBAction)calcNow:(id)sender {
    2. double holes = [[holesField text] doubleValue]; // Aus der Eingabe wird ein double
    3. double strokes = [[strokesField text] doubleValue]; // Aus der Eingabe wird ein double
    4. double result = strokes / holes; // Es wird gerechnet
    5. NSString* resultString = [NSString stringWithDouble:result]; // Erstelle String aus dem Ergebnis, das ja ein Double ist
    6. [averageField setText:resultString]; //Sag dem Textfeld, es soll seinen Text ändern.
    7. }

    Steht bestimmt auch irgendwo in deinem Buch. Falls nicht gib es zurück und hol dir ein Ordentliches. :P
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P