【发布时间】:2014-08-04 12:48:21
【问题描述】:
如何停止块枚举?
myArray.enumerateObjectsUsingBlock( { object, index, stop in
//how do I stop the enumeration in here??
})
我知道在 obj-c 中你会这样做:
[myArray enumerateObjectsUsingBlock:^(id *myObject, NSUInteger idx, BOOL *stop) {
*stop = YES;
}];
【问题讨论】:
-
链接基本上说,不要在swift中使用enumerateObjectsUsingBlock,因为使用
for ... in.. enumerate表达功能更好 -
@David:不是重复的。其他线程不覆盖停止参数。
-
是的,答案是关于如何用新的语法替换这个旧的调用以及如何及早停止它。
-
如果我们被要求提供有关特定 API 的答案,提供替代选项可能会有所帮助,但从技术上讲这不是答案。只有一种意见。如果你在数学考试中被要求用泰勒计算某个函数,但你使用傅里叶,因为你认为它更好,因为什么原因,那是完全失败的。如果 OP 需要/想要使用
enumerateObjectsUsingBlock,我们不应该强迫他使用其他东西。虽然我们应该提到一个更好的方法。
标签: objective-c nsarray block swift enumeration