Swift类扩展 – 无法识别的select器发送到实例
在基础类上创build类扩展时,在使用以下命令时,会收到unrecognized selector sent to instance
的unrecognized selector sent to instance
:
extension NSURLSessionDataTask: Taskable { func isRunning() -> Bool { return state == .Running } }
错误:
[__NSCFLocalDataTask isRunning]: unrecognized selector sent to instance 0x7fa93bdc07d0
我正在尝试创build一个通用任务接口,这样我就可以使用不同types的操作和会话任务,这里有什么我不在这里的东西吗?
许多Cocoa类是“类集群”,这意味着你可能会得到与你所要求的不同的东西。 NSCFLocalDataTask
是一个私有类,它看起来像不从NSURLSessionDataTask
inheritance。 尝试移动你的扩展到NSURLSessionTask
。
为什么会发生这种情况:以“is”开头的Objective-C BOOL属性可能会有所不同。 这可能是你的func作为“running”方法导出到Objective-C,而不是“isRunning”。