符合符合NSObjectProtocol的协议,没有NSObject的子类化?

时间:2014-10-24 01:07:46

标签: ios xcode swift protocols nsobject

我有一个没有理由从NSObject继承的类,除了它现在希望响应协议。但是我得到了错误:

  

不符合协议'NSObjectProtocol'

我不希望从NSObject继承子类,因此必须在我的类及其所有子类中包含它的所有init方法,这样我才能响应这个协议。有办法吗?

2 个答案:

答案 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功能'