Ho un'applicazione MVC. Il modello ha una proprietà che è una struct NSSize
. E 'scrivibile come questo:Come fa NSValue a fare la sua magia?
- (void)setSize:(NSSize)aSize;
La vista imposta questo NSSize
utilizzando la chiave-valore-codifica. Tuttavia, non è possibile-valore-chiave del codice di una struct, quindi ho avvolto in un NSValue
-oggetto come questo:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
Per la mia comprensione, questo non dovrebbe funzionare in quanto la funzione di accesso si aspetta una struct e non un NSValue
. Ma funziona perfettamente. Magicamente.
Com'è possibile?
+1 questa è una grande domanda, perché la codifica dei valori-chiave è una delle cose veramente * fantastiche * sui framework Cocoa. Inoltre, +1 per il tag "magico"! –