«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»