Próbuję obserwować Bool
wartość w szybkim użyciu za pomocą KVO i dodaj dynamic
modyfikator taki jak ten:
dynamic var isRestricted:Bool?
i kompilator mówi
Właściwość nie może być oznaczona dynamicznie, ponieważ jej typem nie może być canot reprezentowane w Objective-C
Więc co powinienem zrobić? należy zmienić na NSNumber dla tego? i jaka jest najlepsza praktyka dla obserwowania wartości?
im przy użyciu xcode 7 beta 2
Odpowiedzi:
30 dla odpowiedzi nr 1Rzeczywistym problemem jest to opcjonalny booleans nie mogą być reprezentowani w Objective-C (i dlatego nie jest zaznaczona dynamicznie). Korzystanie z nie-opcjonalnego
dynamic var isRestricted : Bool = false
powinien rozwiązać problem.
Ogólnie rzecz biorąc, pojęcie "opcje" nie istnieje w Objective-C
, ale opcjonalne odniesienia do instancji NSObject
podklasy są zmostkowany do nullable wskaźników obiektu w Objective-C, więc
dynamic var foo: Foo?
jest dozwolone, jeśli (i tylko) jeśli Foo
jest podklasą NSObject
.