这两个声明 protocol SomeProtocol : AnyObject {} 和本声明 protocol SomeProtocol : class {} 似乎使得只有类可以符合这个协议(即协议的实例是对对象的引用),并且没有其他效果。 它们之间有什么区别
protocol SomeProtocol : AnyObject { }
和本声明
protocol SomeProtocol : class { }
似乎使得只有类可以符合这个协议(即协议的实例是对对象的引用),并且没有其他效果。
它们之间有什么区别吗?应该优先于另一个?如果不是,为什么有两种方法做同样的事情?
我使用最新发布的Xcode 6.3.1。
AnyObject是所有类都隐式遵循的协议( source)。所以我会说没有区别:你可以使用要么类约束。