If you wish to be sure that your code adopts Swift concurrency as accurately as attainable in Swift 5.7, it is a good suggestion to allow the Strict Concurrency Checking (SWIFT_STRICT_CONCURRENCY
) in your mission.
To do that, choose your mission’s goal and navigate to the Construct Settings
tab. Be sure you choose All
from the checklist of settings that’s proven (Fundamental
is the default) and sort Strict Concurrency
within the searchbar to seek out the Strict Concurrency Checking
construct setting.
The screenshot beneath reveals all of the related elements so that you can see:
The default worth for this setting is Minimal
which boils right down to the Compiler solely checking express Sendable
annotations amongst different issues. This setting is the least restrictive and enforces as little of Swift Concurrency’s constraints as attainable in the intervening time.
You may bump your checking to Focused
which is able to implement Sendable
and actor-isolation checks in your code, and it’ll explicitly very that Sendable
constraints are met whenever you mark considered one of your sorts as Sendable
. This mode is actually a little bit of a hybrid between the habits that is supposed in Swift 6, and what’s allowed now. You should utilize this mode to have a little bit of checking in your code that makes use of Swift Concurrency with out an excessive amount of warnings and / or errors in your present codebase.
With Full
you’ll get the total suite of concurrency constraints, basically as they are going to work in Swift 6. Personally I’d suggest enabling this setting for brand new tasks the place you need your whole code to be correctly checked instantly. In an current codebase this mode may be just a little too strict, however however it is going to flag plenty of issues that will probably be necessary in Swift 6.