問題タブ [ios-multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
306 参照

ios - メイン スレッドで HealthKit データを取得すると、ランダム ユーザーのアプリがクラッシュする - iOS - Swift

アプリで HealthKit を使用して、ユーザーの健康データを読み取り、アプリの適切な場所にデータを表示しています。一部の実稼働ユーザー ( iPhone Xユーザーに大きな影響があります) では、HealthKit (メイン スレッド)を使用してヘルス データを取得しているときにクラッシュします。しかし、私はそれを再現することができません。

これは、ユーザー権限の取得を開始して健康データを読み取るコードです。

ファブリックからのクラッシュ情報は次のとおりです

クラッシュ情報によると、HealthKit から DOB を読み取っているときにクラッシュしました。DOB の取得に問題はないと思います。メイン スレッドでヘルス データを読み取っていて、マルチスレッドの問題が発生する可能性があるため、クラッシュが発生していると思います。 . 複数のデバイスで試しましたが、問題を再現できません。

1)データを最初から読み取るとクラッシュが発生する理由について何かポイントHealthKitMain Threadありますか?

2)実行中の完了ブロックはMain Thread 期限切れ/割り当て解除されており、クラッシュを引き起こす可能性がありますか?

ありがとう。

0 投票する
2 に答える
62 参照

swift - スレッド化/ GCD/ 完了ハンドラーからの復帰

ログイン画面からユーザーをサインインさせるロジックがいくつかあります。ログインに失敗した場合、ユーザーに知らせるメッセージを表示したい。ユーザーが正常にログインすると、セグエがトリガーされます。無効な資格情報でテストすると、エラー アラートは期待どおりに表示されますが、if-else ステートメントにネストされているにもかかわらず、セグエがまだトリガーされています。どうしてこれなの?どうすればそれから戻ってelseブロックを回避できますか...? DispatchQ/show アラート コードの下に「return」を追加しようとしましたが、何の効果もありませんでした。

ログインする: