jjzjj

ios - NSMutableArray enumerateObjectsUsingBlock 并不像 Apple 所说的那样同步

coder 2023-10-01 原文

这是一个错误吗?

我有这样几行:

[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

     NSLog(@"%d", idx);
}];

NSLog(@"end");

应该这样打印

"0"
"1"
"2"
...
"end"

但是打印出来的样子

"end"
"0"
"1"
"2"
...

Apple 说 enumerateObjectsWithOptions:usingBlock: 是同步的,所以枚举之前不应该打印“end”,对吧?

你们能确认一下吗?

最佳答案

enumerateObjectsUsingBlock: 绝对是同步的。我刚刚在 CodeRunner 中运行了相同的示例:

NSArray *myArray = @[ @1, @2, @3, @4, @5 ];
[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSLog(@"%d", idx);
}];

NSLog(@"end");

得到如下输出:

0
1
2
3 
4
end

关于ios - NSMutableArray enumerateObjectsUsingBlock 并不像 Apple 所说的那样同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256372/

有关ios - NSMutableArray enumerateObjectsUsingBlock 并不像 Apple 所说的那样同步的更多相关文章

随机推荐