这里应该发生什么? 安全吗? NSArray *nullArray=nil; for (id obj in nullArray) { // blah } 更具体地说,我必须这样做: NSArray *array=[thing methodThatMightReturnNil]; if (array) { for (id obj in array) { // blah } } 还是这样好吗? for (id obj in [thing methodThatMightReturnNil]) { // blah }
我一直在使用enumerateObjectsUsingBlock:最近我需要快速枚举,而且我很难理解BOOL *stop在枚举块中的用法。 NSArray类的引用状态 stop :对布尔值的引用。 该块可以将该值设置为YES以停止进一步处理该数组。 stop参数是一个唯一的参数。 您应该只在块中将此布尔值设置为YES 。 那么我当然可以在我的块中添加以下内容来停止枚举: if (idx == [myArray indexOfObject:[myArray lastObject]]) { *stop = YES; } 从我已经知道,不明确设置*stop为YES没有任何消极的副作用。 枚举似乎自动停止在数组的末尾。 那么使用*stop真的有必要在一个块?