• 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

[Erledigt] Bindings in Xcode 4: "Xcode cannot resolve the entered keypath"

nex4k

Bismarckapfel
Registriert
09.04.10
Beiträge
140
Problem "erledigt"... Xcode zeigt zwar immer noch an dass es den Key Path nicht finden könne, nach dem Kompilieren funktioniert das App aber nun trotzdem wie es soll -> Xcode-IDE-Programmfehler?
​
Habe bereits eine Ewigkeit bei Google gesucht und auch hier im Forum, nur hilft mir nichts davon weiter.

Folgendes Problem:
Ich, frischer Objective-C/Cocoa-Programmieranfänger, versus Xcode 4.
Nach der Anleitung aus einem Buch (Aaron Hillegass - Cocoa: Programming for Mac OS X, deutsche Übersetzung vom mitp Verlag) versuche ich eine Beispielanwendung zu schreiben, die Bindings verwendet. Im konkreten Fall handelt es sich um eine ganz normale Anwendung mit einem Fenster, in welchem das value-Attribut eines Sliders an eine Variable in einer selbst erstellten Klasse gebunden werden soll, sprich wenn man den Slider bewegt soll sich Programmintern auch der Wert der Variable ändern und umgedreht wenn man mit Programmcode den Variablenwert ändert soll auch der Slider seinen Wert entsprechend ändern.
(Zu letzterer der beiden Funktionen bin ich gar nicht erst gekommen, da ich bereits bei ersterer ein Problem habe)
Im Buch wird noch mit Xcode 3 gearbeitet.

Vorgegangen bin ich wie folgt:

1. Neues Projekt erstellen
2. Neue Klasse erstellen -> Name "SlideController"
SlideController.h:
Code:
#import <Foundation/Foundation.h>

@interface SlideController : NSObject {
    int myvalue;
}
- (int)myvalue;
- (void)setMyvalue:(int)newval;

@end
SlideController.m
Code:
#import "SlideController.h"


@implementation SlideController

- (int)myvalue
{
    return myvalue;
}

- (void)setMyvalue:(int)newval
{
    myvalue = newval;
}

@end
3. In MainMenu.xib ein NSObject (das Icon mit dem blauen Quader halt) per Drag&Drop aus der Object Library hinzugefügt, im Inspector die Klasse auf SlideController gesetzt (wurde auch in AutoCompletion beim Tippen angezeigt)

4. In MainMenu.xib im Programmfenster einen Horizontal Slider (NSSlider) hinzugefügt, im Inspektor unter Bindings > Value > Value das Häkchen bei "Bind to:" gesetzt und aus der Combobox "Slide Controller" ausgewählt (das Leerzeichen wurde hier anscheinend von Xcode hinzugefügt?!), anschließend unter "Model Key Path" "myvalue" eingegeben. Kein Autocomplete diesmal, und ganz rechts in dem Eingabefeld wird ein kleines Ausrufezeichen angezeigt welches beim Hovern folgenden Tooltip liefert: "Xcode cannot resolve the entered keypath"

Bzgl. des mysteriösen Leerzeichens: Habe bereits versucht, statt "SlideController" als Klassenname mit CamelCase einfach nur "Slide" zu verwenden, wo Xcode dann dadurch dass es nur ein Wort ist kein Leerzeichen in seiner Anzeige hat - brachte aber auch nichts.

Frage:
Was mache ich falsch?

Habe ich eine winzige Kleinigkeit übersehen (oder fehlt das einfach in der Anleitung aus meinem Buch) oder ist das ein Bug in dem doch recht neuen Xcode 4?
 
Zuletzt bearbeitet:
Nichts.

Letzteres. Bei mir meckert Xcode auch „Xcode cannot resolve the entered keypath“, die Bindings funktionieren aber trotzdem.

MacApple

Vielen vielen Dank!
Ja, jetzt nach stundenlangem Haareraufen hab ich einfach ganz dreist trotz des "Fehlers" nochmal kompiliert und es funktionierte *facepalm*
Hab das nur erst nicht gemacht, weil ich in einem früheren Stadium das schonmal versucht habe und das Programm dabei dann irgendwie direkt beim Start (noch bevor das Fenster erschienen ist) abgestürzt ist... keine Ahnung was da falsch war, jedenfalls gehts jetzt.
Ahhhh... war schon drauf und dran Xcode 4 runterzuschmeißen und es mit 3.2.5 zu probieren :P