我有一个没有理由从NSObject继承的类,除了它现在希望响应协议。但是我得到了错误:
不符合协议'NSObjectProtocol'
我不希望从NSObject继承子类,因此必须在我的类及其所有子类中包含它的所有init方法,这样我才能响应这个协议。有办法吗?
答案 0 :(得分:0)
正如您所推断的那样,您尝试遵循的协议来自NSObjectProtocol
。不幸的是,你基本上坚持继承NSObject
。在纯粹的Swift类中正确地采用NSObjectProtocol
将是非常困难的,并且这样做会引入您从NSObject
进行子类化时遇到的所有相同问题。
答案 1 :(得分:-1)
import Foundation
class A: NSObject {
}
func f(value: NSObjectProtocol) {
}
let a: A = A()
f(a)
因此,没有必要'包含'(实现)某些东西来“响应”NSObjectProtocol。你必须回答的问题是“为什么它需要符合NSObjectProtocol?”答案是你代码中的其他地方。很可能是因为你使用了一些'ObjectiveC功能'