ios - 使用 block 枚举/迭代数组并知道它何时完成

标签 ios arrays swift objective-c-blocks

我想在 Swift 中循环访问一个数组,我需要知道何时到达最后一项。我正在使用 enumerateObjectsUsingBlock。由于没有可选的完成 block (就像在某些 CoreAnimation 方法中一样),我假设 stop 参数表示结束点 - 这是正确的吗?

    itemsArray.enumerateObjectsUsingBlock {
        (object, index, stop) -> Void in
        self.displayedItems.addObject(object as SpecialItem)
        if stop == true {
           println("the end.")
        }
    }

stop 似乎是 UnsafeMutablePointer 类型。因此我不能简单地测试它是真/假还是零。我如何知道枚举何时完成?

最佳答案

enumerateObjectsUsingBlock 同步 执行。枚举结束 当方法返回时。

stop 是对 bool 值的引用,可以将其设置为 true 以停止进一步处理, 例如:

itemsArray.enumerateObjectsUsingBlock {
    (object, index, stop) -> Void in

    // process at most 5 elements:
    if index == 4 {
       stop.memory = true
    }
}

在 block 内测试 if stop == true 没有意义。

关于ios - 使用 block 枚举/迭代数组并知道它何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285355/

相关文章:

swift - 在 Xcode 6 中工作的代码不适用于 Xcode 7

ios - 在 Swift 中将静态方法设置为 UITapGestureRecognizer 的 Action

javascript - 使用 mp3 元数据或 HTML 在 iPhone 锁定屏幕上显示作品和轨道名称

ios - 尝试在 UICollectionViewCell 类上使用照片库

java 二维数组超出扩展范围

javascript - 如何在对象数组中找到具有最长字符长度的对象键

c# - 制作未知大小的数组 C#

ios - 由 ScrollView 裁剪的阴影

ios - 如何在 SwiftUI 中向下翻页矩形?

ios - 根据 UIActivityController 中选择的内容自定义共享内容