开启SWIFT_DEFAULT_ACTOR_ISOLATION后,结构体是否默认主Actor隔离?
Swift 6中SWIFT_DEFAULT_ACTOR_ISOLATION对TokenResponse结构体的隔离影响澄清
在Swift 6开启SWIFT_DEFAULT_ACTOR_ISOLATION设置后,你提供的TokenResponse结构体不会被主Actor隔离,具体原因如下:
SWIFT_DEFAULT_ACTOR_ISOLATION设置的作用范围仅覆盖类、协议、枚举这类引用类型,会让它们默认采用主Actor隔离;而结构体属于值类型,不在该设置的生效范围内。- 值类型的Actor隔离规则依赖于其使用上下文,而非自身被默认绑定到某个Actor。只有当结构体被显式标注
@MainActor,或者在主Actor隔离的上下文环境中被使用时,才会遵循主Actor的隔离要求,否则结构体本身不存在默认的Actor绑定属性。
你的TokenResponse是未标注任何Actor属性的普通结构体,因此不受SWIFT_DEFAULT_ACTOR_ISOLATION设置的影响,不会被主Actor隔离。
内容的提问来源于stack exchange,提问作者tonytran
相关产品推荐
相关产品推荐

