• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

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
 

Modern Geek

Ontario
Registriert
14.10.09
Beiträge
348
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 :)
 

Phil_B

Idared
Registriert
17.11.09
Beiträge
24
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 :(
 

Modern Geek

Ontario
Registriert
14.10.09
Beiträge
348
Test_-_Debugger_Console-20100210-173026.png


Also bei mir funktioniert es ... wie sieht dein header aus? Hast du die noetigen Outlets gesetzt?!
 

Phil_B

Idared
Registriert
17.11.09
Beiträge
24
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
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Denk auch noch ans Memory Management... Dein 'numbers'-Array wird nicht mehr aus dem Speicher entfernt. Da entsteht bei jedem Klick ein leak...