美文网首页
Swift如何給自定义的Array使用Extension

Swift如何給自定义的Array使用Extension

作者: 南国青天 | 来源:发表于2016-09-01 16:14 被阅读92次

如果直接Array添加拓展的方法一般的写法就是下面这样.

extension Array {
    ...
}

当Array这个数组包含的自己定义的类, 而这个方法又不能给全部的Array调用, 那么该怎么写呢?
比如我声明了一个这样的数组var channels = [ChannelVos], 我只想给包含了ChannelVos的这个数组添加拓展方法, 那么该怎么办呢 ?
这里就要用到where去做判断, 代码如下:

extension _ArrayType where Generator.Element == ChannelVos  {
    func channelsForGroupNames(groupNames:[String]) -> [String:ChannelVos]? {
        ...
        return nil
    }
}

var aa = [String]()
var bb = [ChannelVos]()
aa.channelsForGroupNames(["aaa"]) //找不到这个拓展方法
bb.channelsForGroupNames(["aaa"]) //正常使用

相关文章

网友评论

      本文标题:Swift如何給自定义的Array使用Extension

      本文链接:https://www.haomeiwen.com/subject/qezcettx.html