问题
有这么一个协议, 可以用来重新发起请求
public protocol ReRequestable: class {
var request: () -> Void { set get }
}
但是如何建立一个约束 要求 必须是一个遵守 ReRequestable 的 UIView呢, 在C# 中 可以这么写 UIView<ReRequestable>, 但是Swift 中不支持,怎么办??
补充 swift4.0已经支持 这种语法 UIView & ReRequestable
.
.
.
.
.
有一个替代的替代办法:
public protocol Viewable{
var realView: UIView { get }
}
然后
public typealias ReRequestableView = ReRequestable & Viewable
问题不但得到解决,引起了一点思考
为什么 约束一定要是 遵守某个protocol的class
比如这个例子,开始我以为 一定要是遵守 ReRequestable 的 UIView
提供一个UIView, 并且遵守ReRequestable协议是更好的选择,
即: 两个protocol组合是比遵守某个protocol的class 更好的选择,只需要创建一个可以提供特定class实例的protocol
Code here
Github请求数据加载动画框架
网友评论