Spec-Zone.ru › Swift

Включение проверки полной конкурентности

Безопасность от гонок данных в режиме языка Swift 6 разработана для поэтапной миграции. Вы можете решать проблемы безопасности от гонок данных в своих проектах по модулям, а также включить изоляцию акторов компилятора и проверку Sendable как предупреждения в режиме языка Swift 5, что позволит вам оценить свой прогресс в устранении гонок данных перед включением режима языка Swift 6.

Проверку полной безопасности от гонок данных можно включить как предупреждения в режиме языка Swift 5 с помощью флага компилятора -strict-concurrency.

Использование компилятора Swift

Чтобы включить полную проверку конкурентности при запуске swift или swiftc непосредственно в командной строке, передайте -strict-concurrency=complete:

~ swift -strict-concurrency=complete main.swift

Использование SwiftPM

В вызове SwiftPM командной строки

-strict-concurrency=complete можно передать в вызове Swift package manager командной строки, используя флаг -Xswiftc:

~ swift build -Xswiftc -strict-concurrency=complete
~ swift test -Xswiftc -strict-concurrency=complete

Это может быть полезно для оценки количества предупреждений о конкурентности перед постоянным добавлением флага в манифест пакета, как описано в следующем разделе.

В манифесте пакета SwiftPM

Чтобы включить полную проверку конкурентности для целевого объекта в пакете Swift с использованием инструментов Swift 5.9 или Swift 5.10, используйте SwiftSetting.enableExperimentalFeature в настройках Swift для данного целевого объекта:

.target(
  name: "MyTarget",
  swiftSettings: [
    .enableExperimentalFeature("StrictConcurrency")
  ]
)

При использовании инструментов Swift 6.0 или более поздних версий используйте SwiftSetting.enableUpcomingFeature в настройках Swift для данного целевого объекта:

.target(
  name: "MyTarget",
  swiftSettings: [
    .enableUpcomingFeature("StrictConcurrency")
  ]
)

Использование Xcode

Чтобы включить полную проверку конкурентности в проекте Xcode, установите значение параметра «Строгая проверка конкурентности» на «Полная» в настройках сборки Xcode. В качестве альтернативы можно установить SWIFT_STRICT_CONCURRENCY на complete в файле xcconfig:

// In a Settings.xcconfig

SWIFT_STRICT_CONCURRENCY = complete;

The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.

Documentation for Swift 6.0.3


https://www.swift.org/documentation/concurrency/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API