@protocol XXXDelegate <NSObject>
@property (nonatomic, strong) XXX
@end
id<XXXDelegate> msg = obj;
[msg XXX]
1。id<XXXDelegate> msg = obj
在swift中是如何写这种类型的
使用swift如何表达通用遵循协议......?
三江源。
答案 0 :(得分:0)
通常,如果您打算存储对符合协议XXXDelegate
的某些类型的引用,则需要将其写为var delegate: XXXDelegate?
。
如果您询问引用与协议匹配的具体类 - 没有简单的方法(这违反了swift协议的整体思路)。您可以使用泛型函数/类约束来执行此操作,也可以使用称为类型擦除的技术。
第一个更直接
class Generic<T: SomeClass> where T: XXXDelegate {
var delegate: T?
}