我正在尝试使用KVO在swift中观察%
值并添加Bool
修饰符,如下所示:
dynamic
并且编译器说
那我该怎么办?我应该为此更改为NSNumber吗?那么观察价值的最佳做法是什么?属性不能标记为动态,因为它的类型可以是 在Objective-C中表示
我正在使用xcode 7 beta 2
答案 0 :(得分:33)
实际问题是无法表示可选布尔值 在Objective-C中(因此没有标记为动态)。使用非可选的
dynamic var isRestricted : Bool = false
应该解决问题。
一般来说,Objective-C
中不存在“期权”的概念,
但是对NSObject
子类的实例的可选引用是
在Objective-C中桥接到可以为空的对象指针,所以
dynamic var foo: Foo?
如果{且仅} Foo
是NSObject
的子类,则允许。