longitachi / ZLPhotoBrowser

Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能;
MIT License
4.76k stars 963 forks source link

提个建议不是bug,pod的Extension的命名空间管理 #728

Closed xdh725 closed 2 years ago

xdh725 commented 2 years ago

提个建议,pod的Extension的命名空间管理,避免与使用此pod的开发者项目中的Extension发生冲突。

来源开源库 'Tiercel'

public struct TiercelWrapper<Base> {
    internal let base: Base
    internal init(_ base: Base) {
        self.base = base
    }
}

public protocol TiercelCompatible {

}

extension TiercelCompatible {
    public var tr: TiercelWrapper<Self> {
        get { TiercelWrapper(self) }
    }
    public static var tr: TiercelWrapper<Self>.Type {
        get { TiercelWrapper<Self>.self }
    }
}

extension Int64: TiercelCompatible {}
extension TiercelWrapper where Base == Int64 {

    /// 返回下载速度的字符串,如:1MB/s
    ///
    /// - Returns:
    public func convertSpeedToString() -> String {
        let size = convertBytesToString()
        return [size, "s"].joined(separator: "/")
    } 
}

使用方法 
let speed: Int64 = 0
speed.tr.convertSpeedToString()