'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

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