Ios 使用块枚举/迭代数组,并知道何时完成
我想在Swift中遍历一个数组,我需要知道何时到达最后一项。我正在使用enumerateObjectsUsingBlock。由于没有可选的完成块(与某些CoreAnimation方法类似),我假设stop参数表示结束点–这是否正确Ios 使用块枚举/迭代数组,并知道何时完成,ios,arrays,swift,objective-c-blocks,Ios,Arrays,Swift,Objective C Blocks,我想在Swift中遍历一个数组,我需要知道何时到达最后一项。我正在使用enumerateObjectsUsingBlock。由于没有可选的完成块(与某些CoreAnimation方法类似),我假设stop参数表示结束点–这是否正确 itemsArray.enumerateObjectsUsingBlock { (object, index, stop) -> Void in self.displayedItems.addObject(object a
itemsArray.enumerateObjectsUsingBlock {
(object, index, stop) -> Void in
self.displayedItems.addObject(object as SpecialItem)
if stop == true {
println("the end.")
}
}
stop的类型似乎是非女性化指针。因此,我不能简单地测试它是否为真/假或零。如何知道枚举何时完成?EnumerateObjectsSusingBlock同步执行。枚举已完成 当方法返回时
stop
是对布尔值的引用,可将其设置为true
以停止进一步处理,
例如:
itemsArray.enumerateObjectsUsingBlock {
(object, index, stop) -> Void in
// process at most 5 elements:
if index == 4 {
stop.memory = true
}
}
如果stop==true,则在块内测试
没有意义。EnumerateObjectsSusingBlock
同步执行。枚举已完成
当方法返回时
stop
是对布尔值的引用,可将其设置为true
以停止进一步处理,
例如:
itemsArray.enumerateObjectsUsingBlock {
(object, index, stop) -> Void in
// process at most 5 elements:
if index == 4 {
stop.memory = true
}
}
如果stop==true,则在块内测试是没有意义的。获取块之前的计数,然后将索引与计数进行比较,以确定您何时处于最后一项
如果您只想在枚举完成后执行代码,只需将代码紧跟在块代码之后。此块不是异步的
注意:Stop是一个变量,可以在块中设置它以提前终止枚举。请参阅文档。获取块之前的计数,然后将索引与计数进行比较,以确定您何时处于最后一项
如果您只想在枚举完成后执行代码,只需将代码紧跟在块代码之后。此块不是异步的
注意:Stop是一个变量,可以在块中设置它以提前终止枚举。请参阅文档。啊,好的。这是有道理的。我认为块总是异步工作的。@ups@BerndPlontsch:块或多或少是一段代码(类似于函数,但有额外的状态,如变量绑定)。块本身是同步执行的。它可以用于异步方法,如dispatch\u async()
等。啊,好的。这是有道理的。我认为块总是异步工作的。@ups@BerndPlontsch:块或多或少是一段代码(类似于函数,但有额外的状态,如变量绑定)。块本身是同步执行的。它可以用于异步方法,如dispatch\u async()
等。