【问题标题】:Swift agreement issue, how to expressswift协议问题,怎么表达
【发布时间】:2017-04-27 06:57:02
【问题描述】:
@protocol XXXDelegate <NSObject>
@property (nonatomic, strong) XXX
@end
id<XXXDelegate> msg = obj;
[msg XXX]

1.id&lt;XXXDelegate&gt; msg = obj 在swift中是如何编写这种类型

使用swift如何表达一个泛型遵循一个协议...?

谢谢。

【问题讨论】:

标签: ios objective-c swift


【解决方案1】:

一般来说,如果您打算存储对符合协议XXXDelegate 的某些类型的引用,则需要像var delegate: XXXDelegate? 一样编写它。

如果您询问是否引用与协议匹配的具体类 - 没有简单的方法(这与 swift 协议的整体理念背道而驰)。您可以使用通用函数/类约束来执行此操作,也可以使用一种称为类型擦除的技术。

第一个更直接

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    相关资源
    最近更新 更多