向 Swift 2 中的类添加“for...in”支持

2024-01-02

这个问题 https://stackoverflow.com/questions/24099227/add-for-in-support-to-iterate-over-swift-custom-classes早期版本的 Swift 已经得到了答案,但我想知道如何向 Swift 2 中的类添加“for...in”支持。看来新版本的 Swift 中发生了足够的变化,使答案显着不同的。例如,看起来您现在应该使用 AnyGenerator 协议?


只有两个变化:

  • GeneratorOf现在被称为AnyGenerator.

  • GeneratorOf.init(next:)现在是一个函数anyGenerator()

这给了我们:

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 GeneratorOf<Car> instance, passing a closure that returns the next car in the iteration
        return anyGenerator {
            if (nextIndex < 0) {
                return nil
            }
            return self.carList[nextIndex--]
        }
    }
}

(我已经编辑了链接的答案以匹配 Swift 2 语法。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Swift 2 中的类添加“for...in”支持 的相关文章

  • 在 iOS 中管理和解除多个视图控制器

    我是一名 iPhone 新手程序员 在开发我的第一个游戏 应用程序时 我为自己提出了一个问题 创造了一个问题 我对此进行了研究 并认为我已经看到了答案 但我不明白如何使它们适用于我的应用程序 我有一个游戏 有几个视图控制器 欢迎 玩 高分
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 从 Plist 中存储和检索 [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 在 plist 文件中存储两个 NSMutableArray https stackoverflow com questions 6070568 ios store two nsmutable
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 如何向 JSQMessagesViewController 单元添加自定义视图,使其包含一个带有一些按钮和文本视图的视图?

    我在用https github com jessesquires JSQMessagesViewController issues 1820 https github com jessesquires JSQMessagesViewCont
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • Swift 对异步编程有什么语言级别的支持(如果有)?

    当应用程序必须通过不可预测的网络 例如智能手机应用程序 进行通信时 异步编程对于响应式用户界面来说是必须的 用户界面必须保持响应 同时等待结果从互联网上某处的服务器返回 在大多数语言中 应用程序程序员必须实现自己的状态机 可能使用闭包 来响
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 如何在 Xcode 4 中通过一个操作归档多个目标

    我有一个包含多个目标的项目 这些目标都适用于不同的 iOS 应用程序 例如 一个用于精简版的目标 另一个用于专业版的目标 我想立即构建并归档我的所有应用程序 目前 我对每个目标都有一个方案 我用它来独立归档每个应用程序 但现在我必须开始归档
  • 如何在ios中以编程方式添加水平间距和垂直间距?

    我在 ios 8 中创建了一个应用程序 因为我有 4 个可垂直使用的标签 它应该在某些条件下更改位置 所以我已禁用自动布局并以编程方式设置约束 现在的问题是 我可以设置水平和垂直位置 宽度和高度的约束 但我找不到任何方法来添加标签之间的水平
  • 如何在 EKRecurrenceRule 中设置一周中某一天的数组?

    我想在用户选择的特定日期每周添加事件 可以是一个或多个 也可以是一整天 我将用户选择的日期值存储在模型类变量中 但是 当我添加事件并选择日期时 假设今天是星期一 我选择星期二和星期三并保存 然后我查看周一和周三添加的 iPhone 日历 我
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j

随机推荐

  • pytorch / numpy 中具有任意和可变维数的部分切片

    给定 numpy 或 pytorch 中的二维张量 我可以同时沿所有维度进行部分切片 如下所示 gt gt gt import numpy as np gt gt gt a np arange 2 3 reshape 2 3 array 0
  • 是否可以在 jtable 中调用自动行排序器

    无论如何 是否可以在使用创建的 jtable 中调用自动行排序器 setAutoCreateRowSorter true 我试图让它按默认列排序 而用户不必单击列标题 table getRowSorter toggleSortOrder m
  • 从 QML 访问 C++ QList

    如果我有 C 中的内容列表 如何将其公开给 QML 在 Qt5 QtQuick 2 中 貌似QML只能看懂QObject 派生类 这是一个问题 因为QObjects 不能放入QList或复制 我该怎么做呢 struct Thing int
  • 将datareader绑定到asp图表控件

    本质上 我有一个数据读取器 理论上它会调用存储过程 并绑定返回到图表的查询 这是我想要绑定到图表的数据 ForecastDesc Previous Current Budget Forecast 4 Forecast 7 Period1 9
  • Android:Fragment 和 ViewPager 始终从第一个位置开始

    我为我的 Android 应用程序使用主 细节设计 如果我单击 ItemListActivity 中列表视图中的某个项目 则该位置将分配给我的 ItemDetailActivity 这个实现了 ViewPager 和 FragmentSta
  • 在 Play 2 框架上配置 QueryDSL

    我尝试配置QueryDSL http www querydsl com 在 Play Framework 使用 Java 中 但没有成功 我在Google上搜索过类似的问题 发现如下 1 查询DSL和播放 https stackoverfl
  • 如何从 postgres 只获取没有区域的时间戳?

    我在 postgres 中创建了一个带有一些时间戳列的表 create table glacier restore progress 4 id SERIAL NOT NULL email VARCHAR 50 restore start t
  • 为什么Fragment的onCreate()有时会先于Activity的onCreate()调用?

    最近我遇到了一个难以重现的问题 当片段尝试使用 Activity 中的数据初始化 ArrayAdapter 时 就会发生 NPE Activity 的 onCreate 方法中初始化的默认列表 Override protected void
  • 如何在 tkinter 文本小部件中标记文本

    请帮我解决这个代码 from tkinter import root Tk def click t insert INSERT t mark names t mark set INSERT 1 1 t mark gravity INSERT
  • JAVA 中列表上的聚合函数

    我有一个 Java 对象列表 我需要应用聚合函数 例如在数据库上进行选择 来减少它 注意 数据是根据多个数据库和服务调用计算得出的 我期望有数千行 并且每次执行每行始终具有相同数量的 单元格 该数量在执行之间会发生变化 Samples 如果
  • 在 Heroku 上部署战争所需的步骤

    我有带有 Maven 的 spring 源工具 我有一个 Java 项目想要部署在 Heroku 上 有人可以告诉我在 Heroku 上部署的步骤吗 非常感谢 Create warMaven 中的文件 您可以通过参考来做到这一点here h
  • Akka 适合短暂网络覆盖的系统吗?

    Akka 是否适合在节点需要进出 WiFi 覆盖范围的系统中使用 必须考虑哪些方面 例如首选哪些传输协议 Akka is适用于具有瞬态网络覆盖的系统 正如 Viktor 在对该问题的评论中指出的那样 主管层次结构可用于处理未交付错误 有关更
  • H2DB 中如何像 MySql 中那样获取 sql 转储?

    我有 H2DB 数据库 它将数据存储在文件中 我有3个文件 test 18 log db test data db and test index db 我想要像我使用时一样获取 SQL 转储文件mysqldump 是否可以 是的 有多种解决
  • 喷气背包上的调整大小组合不起作用

    我正在使用 jetpack compose 1 0 0 beta09 在我的项目上实现一个屏幕 但我在屏幕上遇到了一个问题 即使键盘打开 页脚也需要始终可见 我知道我们有android 上的 adjustResize 在正常活动中解决了这个
  • C++ 中无符号整数提升

    int main unsigned i 5 int j 10 double d i j long l i j int k i j std cout lt lt d lt lt n 4 29497e 09 std cout lt lt l l
  • jquery - $.functionName 和 $.fn.FunctionName 之间的区别

    在 jQuery 中 我见过以下两种定义 jQuery 函数的方法 fn CustomAlert function alert boo CustomAlert function alert boo 我知道它们附加到 jQuery 对象 或
  • sql联合顺序

    我有一张桌子 上面有学生的姓名和身高 我想要一个查询 按字母顺序对身高高于 150 厘米的学生进行排序 对身高低于 150 厘米的学生按姓名降序排列 像这样的东西 select from students where height gt 1
  • Visual Studio:是否对整个解决方案进行增量搜索?

    我非常喜欢 Visual Studio 中内置的键盘快捷键 我最喜欢的之一是Ctrl i 这会触发增量搜索 当我填写搜索词时 它会跳过当前文档中的文本 输入所需的搜索词后 我使用F3跳过比赛 它工作正常 除了仅限于搜索当前文件 此外 触发增
  • 我是否应该将“贷款”、“采购”和“销售”表非规范化为一张表?

    根据我在下面提供的信息 您能否就将单独的表非规范化为一个包含不同类型合约的表是否是个好主意发表意见 优点 缺点是什么 有没有人尝试过这样做之前 银行系统使用 CIF 客户信息文件 主 客户可能拥有不同类型的账户 CD 抵押贷款等 并使用交易
  • 向 Swift 2 中的类添加“for...in”支持

    这个问题 https stackoverflow com questions 24099227 add for in support to iterate over swift custom classes早期版本的 Swift 已经得到了