如何知道该对象在swift中是类还是协议?

如何知道该对象在swift中是类还是协议?,swift,Swift,在swift中,超类和协议是这样写在一起的 大多数情况下,这不会造成误解,但由于存在同名的NSObject类和NSObject协议,如何区分它们 编译器如何知道使用NSObject类而不是NSObject协议 如果我想使用NSObject协议而不是NSObject类,如何编写类声明?在Swift中,NSObject协议作为NSObjectProtocol导入,因此没有命名冲突 协议被称为非类。如果您希望某些内容符合NSObjectProtocol的要求,请专门使用: protocol MyP

在swift中,超类和协议是这样写在一起的

大多数情况下,这不会造成误解,但由于存在同名的NSObject类和NSObject协议,如何区分它们

编译器如何知道使用NSObject类而不是NSObject协议


如果我想使用NSObject协议而不是NSObject类,如何编写类声明?

在Swift中,
NSObject
协议作为
NSObjectProtocol
导入,因此没有命名冲突

协议被称为非类。如果您希望某些内容符合
NSObjectProtocol
的要求,请专门使用:

protocol MyProtocol: NSObjectProtocol { }
另一方面,
NSObject
符合
NSObjectProtocol
。总之,从
NSObject
继承类意味着它引用了
NSObject
类,并且(不是
NSObject
objective-c
@protocol
)事实上符合
NSObjectProtocol