Verwenden der Schlüsselwertprogrammierung (KVP) mit Swift

7

In Objective-C mit Cocoa können viele Aufgaben ohne explizite Schleifen mithilfe der Schlüsselwert-Programmierung (KVP) durchgeführt werden. Zum Beispiel kann ich die größte Zahl in einem Array mit einer einzelnen Codezeile finden:

%Vor%

Wie kann ich mit swift dasselbe machen? Arrays scheinen die valueForKeyPath-Methode nicht zu unterstützen.

    
dasblinkenlight 04.06.2014, 14:15
quelle

4 Antworten

22

Das Array wird tatsächlich auf die valueForKeyPath-Funktion reagieren - Sie müssen das Array nur in AnyObject umwandeln, damit der Compiler nicht klagen muss. Wie folgt:

%Vor%

oder sogar, für eine Vereinigung von Objekten:

%Vor%

Wenn labels oben eine Sammlung von Labels ist, gibt das obige ein Array aller Strings der text -Eigenschaft jedes Labels zurück.

Es entspricht auch dem folgenden:

%Vor%

... genauso wie in Objective-C:)

    
Sam 04.06.2014, 17:37
quelle
1

Sie können (mindestens) das didSet willSet verwenden, das von Swift für Eigenschaften bereitgestellt wird. Ich denke, es ist besser als nichts.

    
Peres 04.06.2014 15:05
quelle
1

Sie können auch die Reduzierungsfunktion von Array verwenden

%Vor%

Gute Erklärung hier

    
tassinari 21.11.2014 02:39
quelle
0

Ich bin mir nicht sicher über KVP, aber KVO wird derzeit in Swift nicht unterstützt. Siehe auch diesen Dev-Foren-Thread:

Ссылка

    
Matt Bridges 04.06.2014 14:17
quelle

Tags und Links