是否可以为协议创建仅类扩展?

时间:2016-06-01 15:07:44

标签: swift class swift-protocols

仅限类协议使用对我来说很清楚。我知道我可以这样做:

protocol HashableClass: class, Hashable {}

但我想知道是否可以创建仅限类的扩展名:

extension Hashable: class {} / extension Hashable where Self is class {} ??

第二个问题是:是否可以创建非类协议(仅与类协议相对应)?

提前谢谢。

1 个答案:

答案 0 :(得分:4)

所有类都隐含地符合AnyObject,因此您可以定义 a"仅限课程的扩展"与

extension Hashable where Self: AnyObject {

}

protocol Foo: class之间似乎没有区别 和protocol Foo: AnyObject,比较 What's the difference between a protocol extended from AnyObject and a class-only protocol?。)

根据我所知,将协议限制为非类类型是 - 不可能。