Bool属性无法在swift中标记为动态

时间:2015-06-30 06:30:28

标签: swift key-value-observing

我正在尝试使用KVO在swift中观察%值并添加Bool修饰符,如下所示:

dynamic

并且编译器说

  

属性不能标记为动态,因为它的类型可以是   在Objective-C中表示

那我该怎么办?我应该为此更改为NSNumber吗?那么观察价值的最佳做法是什么?

我正在使用xcode 7 beta 2

1 个答案:

答案 0 :(得分:33)

实际问题是无法表示可选布尔值 在Objective-C中(因此没有标记为动态)。使用非可选的

dynamic var isRestricted : Bool = false

应该解决问题。

一般来说,Objective-C中不存在“期权”的概念, 但是对NSObject子类的实例的可选引用是 在Objective-C中桥接到可以为空的对象指针,所以

dynamic var foo: Foo?
如果{且仅} FooNSObject的子类,则允许