大家好,我有一个名为DTNavigationControllerDataSource
的协议,定义为(省略方法)
protocol DTNavigationControllerDataSource: NSObjectProtocol
然后,在我自己的自定义UINavigationController
子类中,我有一个如下协议的实例变量。
var dataSource: DTNavigationControllerDataSource?
基本上我需要知道对象何时成为dataSource。即dataSource
属性已设置。所以我可以在初始设置时调用dataSource来设置某个状态。我考虑过使用KVO但NSObjectProtocol
没有定义任何方法。我不确定这是否可能,或者除了使用KVO之外还有另一种方法可以知道DTNavigationController
内的dataSource属性何时设置。我也试过了didSet
和willSet
,但Xcode向我提出了错误,因为我认为这只适用于基元。
答案 0 :(得分:1)
didSet
方法实际上应该可以正常工作,在操场上(Xcode 7 GM)下面的代码没有问题:
class DTNavigationController : UINavigationController {
var dataSource: DTNavigationControllerDataSource? {
didSet {
print("new data source: \(dataSource)")
}
}
}