/ / Bool Właściwość Nie można oznaczyć dynamicznie w szybkim - szybkim, obserwowaniu wartości klucz-wartość

Właściwość Bool Nie można oznaczyć dynamicznie w szybkim - szybkim, obserwującym klucz-wartość

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 1

Rzeczywistym 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.