2
Swift deinitがバックグラウンドスレッドで呼び出されましたが、オブジェクトはメインスレッドで作成されました。 deinitはinitと同じスレッドで呼び出されることが保証されていますか?作成されたスレッドでSwift deinitが呼び出されませんでした。直し方?
Swift deinitがバックグラウンドスレッドで呼び出されましたが、オブジェクトはメインスレッドで作成されました。 deinitはinitと同じスレッドで呼び出されることが保証されていますか?作成されたスレッドでSwift deinitが呼び出されませんでした。直し方?
簡単に言えば、それは保証されていません。
ARCとは、最後の参照が見つかったスレッドから呼び出されます。正直なところ、ARCがどのように動作し、どのようにコードに影響を与えるかを十分に理解していない限り、この方法の使用を強くお勧めします。
これをテストしようとして、私はちょうどメモリリークを発見しました!しかし、スウィフト・ブックはいずれにしても言いません。しかし、あなたのテストでは、初期化がinitと同じスレッド上で呼び出されることは保証されていないことが証明されています。 –
これは重要なことは何ですか? – nhgrif
@nhgrif RequestManagerでネットワークリクエストをキャンセルします。 –