• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Sommer ist da! Laue Nächte, lange Abende im Biergarten und Mücken in Heeresstärke - dazu passend lautet das Thema unseres Fotowettbewerbs im Juni Nachtleben --> Klick

Variable Daten aus TextFields in UITableViewCell auslesen und in Array sichern

  • Ersteller Ersteller Mitglied 26876
  • Erstellt am Erstellt am

Mitglied 26876

Gast
Hey Jungs!

Ich sitze jetzt schon seit etwa einer Woche an einem Problem: Ich habe einen UITableView, in dem stehen Detail-Daten. Es geht jetzt darum, dass dort Cells liegen, die über ein Textfeld verfügen und ich die Daten aus dem Textfeld weiter an eine andere Klasse schicken will. Da ich aber immer eine andere Anzahl an Variablen und Bezeichnungen der Variablen und natürlich Werte habe, war das für mich sehr schwierig.
Ziel ist es, dass ich ein Array habe, wo jedes enthaltene Object so aussieht:
VariablenName (Trennzeichen, hat da wer eine gute Idee…?) VariablenWert, VariablenName Trennzeichen VariablenWert,…,nil. Wichtig, wenn der User den Wert ändert, muss ich den alten Wert im Array replacen!

Ich erzeuge durch ein Array die Cells mit den entsprechenden VariablenNamen.

Jetzt habe ich mal ein wenig rumexperimentiert, allerdings funktioniert das Ganze nicht wirklich. Es geht nur, wenn ich nur eine Variable habe, die nicht schon vorhanden ist.

Also mein Code: Funktioniert bei einer Variable, wenn mehr --> Exeption
(Kann ich grade nicht rekonstruieren, die Exeption, da Xcode jetzt keine ausgibt, sondern einfach das App crashen lässt…)

Code:
#pragma mark -
#pragma mark TextFieldMethods

- (void)textFieldDidEndEditing:(UITextField *)textField {
	
	// Meine Variablen aus der Datenbank durchlaufen
    for(NSString *valueName in array.values){
        
		// Wenn die Variable aus der For-Schleife meinem aktuellem TextField entspricht
        if ([array.values indexOfObject:valueName] == textField.tag){
			
			// Einfach loggen, welche Variable welchen Wert hat
            NSLog(@"%@ == %@", [array.values objectAtIndex:[array.values indexOfObject:valueName]], textField.text);
			
			if ([valueArray count] == 0){
				
				// String für Array bauen:
				NSString *cacheString = [NSString stringWithFormat:@"%@\\ %@",[array.values objectAtIndex:[array.values indexOfObject:valueName]], textField.text];
				
				// Wen das Objekt der zweiten For-Schleife noch nicht im Array vorhanden ist den Namen\Wert hinzufügen als Objekt
				[valueArray addObject:cacheString];
				NSLog(@"Variable noch nicht vorhanden");
				
			}else{
				
				// valueArray durchlaufen
				for(NSString *nameOfValue in valueArray){
					
					// Hilfsstring bauen für If-Abfrage
					NSString *valueNameString = [array.values objectAtIndex:[array.values indexOfObject:valueName]];
					
					// String für Array bauen:
					NSString *cacheString = [NSString stringWithFormat:@"@%\%@",[array.values objectAtIndex:[array.values indexOfObject:valueName]], textField.text];
					
					// Wenn durchlauf Variable aus der zweiten For-Schleife einer Variable in meinem Array entspricht
					if ([valueNameString isEqualToString:nameOfValue]) {
						
						// Objekt im Array durch das Neue ersetzen
						[valueArray replaceObjectAtIndex:[valueArray indexOfObject:nameOfValue] withObject:cacheString];
						NSLog(@"Variable schon vorhanden");
						
					}else {
						
						// Wen das Objekt der zweiten For-Schleife noch nicht im Array vorhanden ist den Namen\Wert hinzufügen als Objekt
						[valueArray addObject:cacheString];
						NSLog(@"Variable noch nicht vorhanden");
					}
					
				}
				
			}
            
        }else{
			NSLog(@"Variable passt nicht");
            // Wenn die Variable aus der For-Schleife meinem aktuellem TextField nicht entspricht
        }
    }
    
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:@"please make a calculation, try again…" forKey:@"outputTextNormal"];
	[prefs synchronize];
	
}


Gibt es eine viel schönere Idee dafür? Hat wer Erfahrung damit? Ich tu mich da wirklich sehr schwer!


Viel Dank fürs Lesen,

Jan