我正在尝试为我的应用程序创建一个通用错误处理程序并使事情变得更加复杂我正在使用事件总线来传递任务,因此我无法在编译时指定类型。我正在尝试执行以下操作:
let apiTask = data.object as! Task // Option 1
let apiTask = data.object as! Task<AnyObject> // Option 2
apiTask!.continueWith { (task) in
if(task.cancelled || task.faulted) {
self.isInError = true
} else {
self.isInError = false
}
}
选项 1给出编译时错误,指出无法推断 Task 的泛型类型 TResut。
选项 2导致运行时错误说Task<SpecificType> cannot be caster to Task<AnyObject>
我在 Java 中有相同的实现,您似乎不需要在那里指定泛型类型。Task<TResult>可能是任何类型,所以我不能在上面的方法中指定它。有没有办法解决这个问题?