私です。
将来に向けて厳しくした Xcode 設定でのどうなるかの検証です。
【Swift】Strict Concurrency Checking の設定 https://t.co/wmXyJ8ipOv #Qiita
— chanzmao (@maochanz) June 25, 2024
サンプルコード。
最もよくある非同期処理のパターンの一つだと思います。
ただ WEB リクエストしてそれを表示するやつ。
👉 【SwiftUI】シンプルに HTTPリクエスト でお天気情報取得
どうなるか。
🧑🏻💻 Passing argument of non-sendable type 'Requester' outside of main actor-isolated context may introduce data races
一応、動きますが。
こんな警告でました。
Passing argument of non-sendable type 'Requester' outside of main actor-isolated context may introduce data races
なんなんですかね。
なんかおかしいですか。
🧑🏻💻 Non-final class 'Requester' cannot conform to 'Sendable'; use '@unchecked Sendable'
無邪気に Sendable
を継承します。
一行のみの変更です。
class Requester: Sendable {
Non-final class 'Requester' cannot conform to 'Sendable'; use '@unchecked Sendable'
と出ました。
よって、結局、以下の2つのどちらかで警告は消えます。
final class Requester: Sendable {
class Requester: @unchecked Sendable {
ここら辺でこれだけつまずいてるのだけども。
👉 Sendable | Apple Developer Documentation
🤔 気持ち悪さ
よくこの @Observable クラスが、
いわゆる「MVVM でいうところの ModelView」
となってるコードをよく見かけます。
これが「アクター境界」を越えていいの ?
🤔 関連記事
【Swift】 @Observable に @MainActor をつけると おまえは 実質 ViewModel だろ #Swift #プログラミング #ioshttps://t.co/EbB0QksJX3
— chanzmao (@maochanz) July 7, 2024