我有一个控制器类(不是viewController),我想要符合协议。 此控制器类不是任何其他类的子类,因此它没有超类。
如果某个类没有超类,我如何符合协议?
这不起作用:
class xxxController , yyyDelegate
这不是我们想要的:
class xxxController : zzzSuperClasss, yyyDelegate
有人知道它在Swift 2.1中是如何工作的吗?
更新:
我忘记写了我曾尝试过:
class xxxController : yyyDelegate
当我这样做时,我得到了
类型xxxController不符合协议NSObjectProtocol
所以我猜yyyDelegate需要(在这种情况下)xxxController是NSObject的子类?
答案 0 :(得分:4)
如果一个类有一个超类,那么必须首先在基类中列出超类。当类没有超类时,从第一项开始列出协议。
换句话说,如果没有def demand_supply_links
DemandSupplyLink.where(supply_type: 'WO',
supply_base_id: base_id,
supply_lot_id: lot_id,
supply_split_id: split_id)
end
,那么你可以简单地写
zzzSuperClasss
Swift意识到class xxxController : yyyDelegate
是一种协议,并且符合您的期望。
Documentation提供了此类的示例:
yyyDelegate
答案 1 :(得分:1)
您可以通过直接声明一致性来实现:
protocol Foo { }
class Bar: Foo { }
..或通过扩展名(例如,如果您没有对类实现的控制,例如从某些库中获取它的情况):
protocol Foo { }
class Bar { }
extension Bar: Foo { }