0

私は静的ライブラリを開発しています。そして、ここからソースコードを使用して、ライブラリでリバース認証を使用しています。このライブラリでは、以下は iOS5 でクラッシュしますが、iOS6 では正常に動作します。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

次のように行を変更すると、すべての OS バージョンで正常に動作します。

dispatch_async(dispatch_get_main_queue()

変更はすべての状況で機能しますか、それとも問題を引き起こしますか? アドバイスをください、ありがとう。

4

1 に答える 1

2

コードを見ることができないとわかりにくいですが、これは、ブロックの前に作成されたオブジェクトに GCD ブロックなしでメッセージを送信しているように聞こえますが、そのオブジェクトはブロックの実行時には存在しません。ARCが収集しないように、プロパティとして設定して保持することをお勧めします。

iOS バージョン間の不一致は、シミュレーターとデバイスの違いが原因である可能性があります (デバイスで iOS 6 バージョンを実行し、シミュレーターで 5 バージョンを実行すると言いました)。

于 2013-01-07T14:46:56.120 に答える