我理解what the stop
parameter is for,但我很想知道为什么这是BOOL *
而不仅仅是BOOL。是因为值本身需要存在于块范围之外,因此enumerateObjectsUsingBlock:
可以访问块本身可能分配给它的值吗?
答案 0 :(得分:4)
要回答你的问题(尽管它看起来像是一个骗子),该块需要告诉其调用者停止枚举它是否找到了它正在寻找的内容。 C中有两种选择:
return YES
继续或return NO
停止。BOOL *
。Apple选择了第二种方法,尽管我认为第一种方法更简单(少一个参数)并且更直观。
它不能只是BOOL
,因为它只设置变量的本地副本,而不是调用者范围内的变量。