У меня есть класс, который использует изменяемый массив, который изменяется один раз после того, как много чтений (появляются новые элементы ).
Проблема в том, что когда приходит время мутировать массив, считывания продолжают поступать.
В настоящее время, чтобы избежать этой проблемы, каждый раз, когда он что-то читает, он делает это поверх копии :
[[theArray copy] operation] //operation being indexOfObject:, objectAtIndex: objectsAtIndexes:, etc.
. Копирование становится очень дорогим, особенно когда нет необходимости (все те разы, когда массив не мутируется ).
Как я могу заблокировать массив, чтобы отложить доступ к нему при изменении?