2012-04-06 7 views
0

Ich verwende eine segmentierte Steuerung als eine Art Radio Button-System für eine Kontakt-App. Es gibt drei Schaltflächen, und die Frage ist, ob der Kontakt ein bestehender Kunde ist. Die Namen der Tasten sind „Nein“, „Ja“, „Andere Division“Ich möchte UISegmentedControl.selectedSegmentIndex in Core Data speichern - aber wie

ich absolut grün bin iOS in der Entwicklung, und dieses meine letzte verbleibende graue Haare zieht aus

ich sein will die Lage, den selectedSegmentIndex Wert in der db von Core Data zu speichern, so kann ich richtig den Status auf der nächsten Ansicht zeigen - aber ich kämpfen bin wirklich um meinen Kopf zu bekommen, wie der Wert zu speichern:

if (self.existCustSelection.selectedSegmentIndex == 2) 
    [self.currentContact setExistCust:[existCustSelection stringWithFormat:@"%d", @"2"]]; 

- Dies ergibt einen Kompilierungsfehler für

Keine sichtbaren @interface für ‚UISegmentedControl‘, um den Selektor ‚string:‘ erklärt

verstehe ich, dass - mein Problem ist, ich die existCust statt existCustSelection setzen wollen, aber aus welchen Gründen auch immer, ich don bekomme diese Option nicht während des Schreibens des Codes.

Meine Lese geht so und gibt keine Fehlermeldung oder Warnung:

if ([currentContact existCust] == @"2") { 
      self.existCustSelection.selectedSegmentIndex = 2; 
    } 

Hoffentlich gibt es eine große Lösung ist da draußen? :)

Vielen Dank im Voraus, Mickey

+1

Was ist die Definition von 'existCust'? Wenn es ein NSString ist, sollte es möglich sein, '[self.currentContact setExistCust: @" 2 "];' zu verwenden, aber dann sollte die 'if'-Anweisung 'isEqualTo' anstelle von' == 'verwenden. –

+1

Phillip - absolut richtig! :) Vielen Dank! – MickeyDK

Antwort

1

Does existCust haben eine Zeichenfolge sein? Wenn es jemals speichert nur Zahlen, betrachten NSNumber mit:

NSNumber* custNumber = [NSNumber numberWithInteger:existCustSelection.selectedSegmentIndex]; 

Wenn Sie auf jeden Fall einen String tun müssen, ist hier, wie Ihr Index auf einen String mit string konvertieren:

NSString* custString = [NSString stringWithFormat:@"%d", existCustSelection.selectedSegmentIndex]; 

Es gibt zwei Probleme mit Ihr Anruf stringWithFormat:

  1. stringWithFormat ist eine Klassenmethode von NSString. Sie fragen Ihre Instanz UISegmentedControl, um eine Zeichenfolge zurückzugeben, und es weiß nicht, wie das geht.
  2. Nach Anforderung eines %d in StringWithFormat muss das erste Argument eine ganze Zahl sein, z. B. 2, nicht die Zeichenfolge @"2".