对于大多数迭代 block ,签名定义如下:
void(^)(id obj, BOOL* stop)
使用返回值作为停止标志看起来更好。
BOOL(^)(id obj)
但是我相信有充分的理由让他们决定使用当前的形式而不是更简短和方便的形式。为什么他们使用参数作为停止标志?
最佳答案
当然,无论哪种方式都可以正常工作,但请这样想:您是否必须在 for
或 的末尾使用
循环?不,当然不是因为它是自动发生的。如果你想停止循环,你可以使用 continue
语句>whilebreak
。
与基于 block 的枚举方法类似。您不需要返回 YES
来指定是否要继续枚举,因为它会自动发生。但是,如果您想停止枚举,只需将 *stop
设置为 YES
即可。
关于ios - 为什么大多数 block 使用参数作为迭代继续标志而不是返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684656/