【发布时间】:2017-12-13 03:40:42
【问题描述】:
我有一个在异步进程中使用的Result 类型:
internal enum Result<T> {
case success(T)
case failure(Error)
}
我还有一个APIDataResultContext,用于在Operation 子类之间传递数据:
internal final class APIDataResultContext: NSObject {
// MARK: Properties
private let lock = NSLock()
private var _result: Result<Data>!
internal var result: Result<Data>! {
get {
lock.lock()
let temp = _result
lock.unlock()
return temp
}
set {
lock.lock()
_result = newValue
lock.unlock()
}
}
}
在我的单元测试中,我需要确定何时在APIDataResultContext 实例中设置了result。我不能使用 KVO,因为我的 Result<T> 类型不能标记为 dynamic,因为它不能在 Objective-C 中表示。
除了使用闭包属性或Notification 之外,我不知道还有其他方法可以让我监控result 何时更改,我不想这样做。不过,如果有必要,我会使用这两种方法中的一种。
我可以通过哪些其他方式监控result 的更改?
【问题讨论】:
标签: swift4 key-value-observing