美文网首页
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