EnumerateUsingBlock: поток безопасно?
EnumerateUsingBlock: поток безопасно? Я имею в виду, можно ли изменить NSMutableArray при перечислении его с помощью enumerateUsingBlock в другом потоке?
Как насчет enumerateObjectsWithOptions:usingBlock: при использовании опции NSEnumerationConcurrent?
1 ответ
Решение
Нет. NSMutableArray
никогда не является поточно-ориентированным. Все перечисления предполагают, что коллекция остается неизменной, включая NSEnumerationConcurrent
, Если вы измените коллекцию во время перечисления, даже из того же потока, возникнет исключение.