• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Hilfe mit Textfeld und Array

Phil_B

Idared
Registriert
17.11.09
Beiträge
24
Hallo Community,

ich habe ein Problem und komme nicht weiter. Ich hoffe ihr könnt mir helfen.
Ich erstelle gerade eine kleine App für das iPhone.
In dieser App habe ich zwei Textfelder, ein Label und eine Action mit dem IB erstellt.
Folgendes will ich erreichen:
Der User gibt in die Textfelder zwei Float-Werte ein. Diese werden nach tippen des Buttons mit einem Wert aus einem Array multipliziert und ausgegeben.

Aus meineApp.h
Code:
...
IBOutlet UITextfield *kgvalue; //Textfeld für Eingabe eines Gewichtes
IBOutlet UITextfield *hourvalue; //Textfeld für Eingabe der Trainingsdauer
IBOutlet UILabel *resultvalue; //Label für das Resultat
...
- (IBAction)buttonPressed:(id)sender;
...
In der meineApp.m steht folgendes:
Code:
...
- (IBAction)buttonPressed:(id)sender {
  // Erstellen eines Arrays mit einem Float-Wert (weitere sollen folgen)
  NSMutableArray* numbers = [[NSMutableArray alloc] init];
  NSNumber* num1 = [NSNumber numberWithFloat:6.5];
  [numbers addObject:num1];

  // Einlesen eines Wertes aus einem Textfeld
  NSNumber *kgtext = [NSNumber numberWithFloat:[kgvalue.text floatValue]];
  NSNumber *hourtext = [NSNumber numberWithFloat:[hourvalue.text floatValue]];

  float wertausarray = [numbers addObjectAtIndex:0];

  float resultat = kgtext * hourtext * wertausarray;
}
Der obige Code läuft so nicht, da das resultat immer null ist.
Was mache ich falsch?

Ich bin für jede Art von konsturktiver Hilfe dankbar
Phil_B
 
1.) float wertausarray = [numbers addObjectAtIndex:0];

dort willst du bestimmt "objectAtIndex" nutzen ;-)

Dann versuch es mal so...

// Einlesen eines Wertes aus einem Textfeld
float kgtext = [kgvalue.text floatValue];
float hourtext = [hourvalue.text floatValue];

NSNumber *wertausarray = [numbers objectAtIndex:0];
float wert = [wertausarray floatValue];

float resultat = kgtext*hourtext*wert;

Du arbeitest mal mit NSNumber mal mit Float, das wird wohl nicht funktionieren :)
 
Das hat leider nicht funktioniert.
Wenn ich in die Textfelder 2 Werte eintrage und auf den Button tippe schließt sich die App.
Habe mir auch mal per NSLog und Console meine Werte ausgeben lassen. Die sind alle null :(
 
Test_-_Debugger_Console-20100210-173026.png


Also bei mir funktioniert es ... wie sieht dein header aus? Hast du die noetigen Outlets gesetzt?!
 
Also ich habe die App jetzt nochmal neu gemacht und zwar mit deinem Code und es funktioniert.
Da ich noch nicht weiß warum, werde ich mir das nochmal genauer anschauen und aus meinen Fehlern lernen.

Dir erstmal ein Riesendank
Phil_B
 
Denk auch noch ans Memory Management... Dein 'numbers'-Array wird nicht mehr aus dem Speicher entfernt. Da entsteht bei jedem Klick ein leak...