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

1.id<XXXDelegate> msg = obj
在swift中是如何写这种类型的
使用swift如何表示通用遵循协议。。。?
谢谢你。

最佳答案

一般来说,如果要存储对某个符合协议XXXDelegate的类型的引用,则需要像var delegate: XXXDelegate?那样编写该引用。
如果您询问是否要引用与协议匹配的具体类,那么没有简单的方法(这违背了swift协议的总体思想)。可以使用泛型函数/类约束来执行此操作,也可以使用名为类型擦除的技术。
第一个更直截了当

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

关于ios - Swift协议(protocol)问题,如何表达,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43650670/

10-10 19:13