栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

添加“ for in”支持以遍历Swift定制类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

添加“ for in”支持以遍历Swift定制类

假设您有一个类“ Cars”,希望使用for..in循环进行迭代:

let cars = Cars()for car in cars {    println(car.name)}

最简单的方法是将AnyGenerator与以下类一起使用:

class Car {    var name : String    init(name : String) {        self.name = name    }}class Cars : SequenceType {    var carList : [Car] = []    func generate() -> AnyGenerator<Car> {        // keep the index of the next car in the iteration        var nextIndex = carList.count-1        // Construct a AnyGenerator<Car> instance, passing a closure that returns the next car in the iteration        return anyGenerator { if (nextIndex < 0) {     return nil } return self.carList[nextIndex--]        }    }}

要尝试一个完整的工作示例,请添加上面的两个类,然后尝试像这样使用它们,并添加几个测试项:

    let cars = Cars()    cars.carList.append(Car(name: "Honda"))    cars.carList.append(Car(name: "Toyota"))    for car in cars {        println(car.name)    }

就是这样,很简单。

更多信息:http://lillylabs.no/2014/09/30/make-iterable-swift-collection-
type-sequencetype



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号