私は、ユーザ入力によってトリガされる以下のコードの変形を持っています。合計ミステリー - iOSメソッドはランダムな遅延の後に実行されます
NSLog(@"WHY YOU iOS!!!");
[scanButton setSelected:YES];
[overlayImageView setImage:image];
[overlayView setHidden:YES];
上記のルーチンは、一見5秒から1分以上のランダムな遅延で実行されることがあります。
時々、NSLogメソッドを不思議なことを除いて、それらはまったく実行されません。 NSLog行にブレークポイントを設定すると、ただちに実行され、コンソールに "なぜ?"と表示されます。ただし、デバッガがエラーまたは警告なしで3行の下をスムーズに実行しても、次の3行の効果はランダムな遅延または無限の遅延の後に発生します。どうしましたか?ランダム遅延がどうして起こる可能性がありますか?
プログラムのデザインが悪いなどの理由で、Cocoa SDKのUI部分が中断していると思われますが、ランダムな遅延が発生しても、他のボタンや機能はうまく動作します。 iOS、または私の問題は何ですか?
画像パラメータ(UIImage *)が別のソースから来た場合、上記の正確なルーチンが遅れずに正常に動作するということです。その場合、問題の原因はイメージにあるとみなすことができますが、scanButtonとoverlayViewはイメージとは何の関係もないのに、同じ遅延で応答するのはなぜですか?私には完全な謎です。
iOSでは何も問題ありません(iOSには問題はありませんが、おそらくこの部分はありません)。より多くのコードを表示してください - このコードはどこでどのように実行されていますか? –
私がコーディングで学んだことは、どんな謎でも可能です。そしてあなたはいくつかの可動部分を無視しているので、それは謎のようです。あなたがすべての部分を一緒に置くならば、あなたは謎を解きます。そのデバッグと呼ばれる! – mbh
@mbh。私はちょうどその問題を解決し、その謎の原因はコードではなく、コンパイラの働きがわからないということに気付いた。彼らは決定論的なオートマトンなので、彼らは神秘的ではありません。バグは私の頭の中にあった。さて、私は実際のコードをデバッグするために頭をデバッグする必要があります。とにかく、あなたの洞察に感謝します。 –