iPhone Programmierung Problem mit setStringValue

JACYB

Neues Mitglied
Thread Starter
Dabei seit
25.11.2011
Beiträge
19
Reaktionspunkte
0
Hi,
ich habe bereits Erfahrung mit der Programmierung von Mac Programmen.
Nun wollte ich ein iPhone Programm schreiben. In meinem Programm habe ich mehrere Labels. Doch jedes Mal wenn ich setStringValue, setIntValue etc. verwenden möche, erhalte ich eine Fehlermeldung.

Hier ein Code Beispiel:

- (void) awakeFromNib {
[wertLabel setStringValue: @""]; <<--- Hier wird ein Fehler ausgegeben
}

Folgende Fehlermeldung erscheint. Diese ist bei der Mac Programmierung noch nie aufgetreten.
No visible @interface for UILabel declares the selector "setStringValue"


Oder hier ein weiteres Beispiel:
- (IBAction)changeSlider:(UISlider *)sender {
//Wert vom Schieberegler holen
double a = [slider floatValue]; <<--- Hier wird ein ähnlicher Fehler ausgegeben: No visible @interface for UISlider declares the selector "floatValue"

// Wert in das Textfeld schrieben
[wertLabel setStringValue: @"%.1f", a]; <<--- Hier wird ein 1. Fehler wieder ausgegeben
}

Ich bedanke mich für jede Hilfe :)
 
Hallo,

wie von Christian1313 schon erwähnt - Dokumentation.
Dann hättest Du festgestellt, dass Du -setText: suchst bzw. verwenden solltest.

Des Weiteren:

Code:
[wertLabel setStringValue: @"%.1f", a]; <<--- Hier wird ein 1. Fehler wieder ausgegeben
Neben der Tatsache, dass es -setText: sein müßte übergibst Du nicht mal einen String.

Also so etwas hier wäre richtig.
Code:
[label setText:[NSString stringWithFormat:@"%.1f", x]];
Frei runter geschrieben, Rechtschreibung bitte selbst prüfen und korrigieren.

Sinnvoll ist es auch, wenn Du Getter versedest, d.h. [self.label set…

Viele Grüße
 
Hi, nochmal vielen Dank für deine Hilfe jetzt funktioniert es. Aber ich konnte die Anweisung setText auch bei nochmaliger Betrachtung der Dokumentation nicht finden.
Ich hätte zudem noch ein paar Fragen: Köntest du mir erklären der der Fehler genau bedeutet (No visible @interface...) ?
und meine zweite Frage wäre ob es den Befehl setStringValue für die iOS Programmierung nicht gibt? Denn diese konnte ich in der Dokumentation nur unter OSX finden, wo ich sie ja bereits kenne. Vielen Dank für eure Hilfe.
 
"text" ist ein property von UILabel mit Obj-C 2.0 werden die setter und getter für properties meist miterstellt (je nach Deklaration).

UILabel *label;

// .... //

label.text = @"Hier Text";
oder
[label setText:mad:"Hier Text"];

Siehe hier: http://theocacao.com/document.page/510

Und zur 2. Frage
setStringValue gibt es für UILabel nicht und auch für sonst keine Klasse aus UIKit. Deswegen Ja die Dokumentation lesen.
 
Köntest du mir erklären der der Fehler genau bedeutet (No visible @interface...) ?
No visible @interface for UILabel declares the selector "setStringValue"

Im Header einer Objective-C Klasse wirst du "@interface" finden. Interface - zu deutsch "Schnittstelle" - bedeutet, dass hier all das bekannt gemacht wird, was andere zum Verwenden der Klasse brauchen. Alles, was nur zur internen Nutzung ist, kannst du in einem @interface innerhalb der Implementationsdatei bekannt machen.

Der Fehler sagt nun, dass die Methode "setStringValue" dem, der sie versucht zu benutzen nicht bekannt ist, da kein für ihn sichtbares @interface sie als benutzbar ausweist. Du könntest UILabel nun zwar mittels selector dazu zwingen, die Methode trotzdem aufzurufen, das ist aber nur dann eine gute Idee, wenn man weiß was man tut und weiß, dass die Methode entgegen der Angaben des Interface doch implementiert ist.

Noch mal in einfachereren Worten, falls dich die ausführliche Erklärung etwas verschreckt haben sollte:
Einfach gesagt bedeutet der Fehler, dass du versuchst, eine Methode (hier: "setStringValue") zu verwenden, diese aber nicht existiert.
 
Zurück
Oben Unten