ich Iterieren durch einige Objekte und versuchen, einige Eigenschaften festlegen, die offenbar nicht mögen Schlüsselwert-Codierung. Daher kann ich zur Laufzeit keine Zeichenfolge zur Darstellung des "Schlüssels" erstellen.Objective-C Punktsyntax Tricks für wenn Key-Wert nicht funktionieren wird?
kompiliert Diese Linie von Viewcontroller wird nicht:
[self setValue:offsetX forKeyPath:[NSString stringWithFormat:@"myView%d.center.x", anInt]];
aber ich diese Eigenschaften mit Punktnotation in einer lächerlichen switch-Anweisung einstellen:
myView1.center.x = offsetX;
Gibt es eine andere Art und Weise, um dies zu ? Vielleicht erstellen Sie einen Accessor wie myView (i) .center.x? Zu wissen es wohl vergeblich sein würde, habe ich versucht, auch: [NSString string: @ „myView% d“, anint den Wert] .center.x
ohne Erfolg ...
Das brillant funktioniert! Vielen Dank! Und Ihr Ansatz führte mich meine nächste Frage, um herauszufinden, welchen myViewX.center einstellt, die durch Setzen des Wertes auf einen CGPoint in ähnlicher Art und Weise ist [NSValue valueWithCGPoint: Centerpoint] statt nur Centerpoint® ... Lebensretter! – Meltemi
Hmmmm. Nun stecken, wie man ein bool für den Einsatz in KVC in so etwas wickeln: [self setValue: JA forKeyPath: [NSString string: @ "@ myView% d.userInteractionEnabled"]]; – Meltemi
BOOLs können in NSNumber eingebunden werden. –