斯威夫特协议问题,如何表达

时间:2017-04-27 06:57:03

标签: ios objective-c swift

@protocol XXXDelegate <NSObject>
@property (nonatomic, strong) XXX
@end
id<XXXDelegate> msg = obj;
[msg XXX]

1。id<XXXDelegate> msg = obj   在swift中是如何写这种类型的

使用swift如何表达通用遵循协议......?

三江源。

1 个答案:

答案 0 :(得分:0)

通常,如果您打算存储对符合协议XXXDelegate的某些类型的引用,则需要将其写为var delegate: XXXDelegate?

如果您询问引用与协议匹配的具体类 - 没有简单的方法(这违反了swift协议的整体思路)。您可以使用泛型函数/类约束来执行此操作,也可以使用称为类型擦除的技术。

第一个更直接

class Generic<T: SomeClass> where T: XXXDelegate {
    var delegate: T?     
}