'defaultValue' не является безопасным для параллелизма [дубликат]IOS

Программируем под IOS
Ответить
Anonymous
 'defaultValue' не является безопасным для параллелизма [дубликат]

Сообщение Anonymous »

У меня есть эта структура ниже:

Код: Выделить всё

struct DarkConnectorLineAnchor: Equatable {
let anchor: Anchor
}
struct DarkStepPreferenceKey: PreferenceKey {
static var defaultValue = [DarkConnectorLineAnchor]()
static func reduce(
value: inout [DarkConnectorLineAnchor],
nextValue: () -> [DarkConnectorLineAnchor]
) {
value.append(contentsOf: nextValue())
}
}
У меня проблема в том, что значение по умолчанию должно быть var, потому что оно находится в массиве. Но при этом у меня возникает ошибка:
Статическое свойство 'defaultValue' не является безопасным для параллелизма, поскольку оно представляет собой неизолированное глобальное общее изменяемое состояние; это ошибка в языковом режиме Swift 6.
Как это исправить? Я могу добавить главного актера к значению по умолчанию и добавить @preoncurrency, но не уверен, что это идеальное решение.
Обновление: пожалуйста, не закрывайте вопрос, здесь мы используем массив, аналогичный вопрос, который был помечен как дубликат, не использует массив. Обратите внимание, что именно массив отличает этот вопрос от вопроса, помеченного как дубликат.
Любая помощь или рекомендации приветствуются.

Подробнее здесь: https://stackoverflow.com/questions/793 ... rency-safe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»