1

そのため、UIGraphicsBeginImageContextはスレッドセーフであり、任意のスレッドから呼び出して、描画に使用できる新しいCGContextRefを作成できるという印象を受けました。

ただし、現在のドキュメントには次のように記載されています

"You should call this function from the main thread of your application only."

ただし、WWDC2012セッションビデオ「BuildingConcurrentUserInterfaces」では、スピーカーは、実際にバックグラウンドで描画し、そのメソッドをバックグラウンドで呼び出すことができることを示しています。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ご覧のとおり、彼は_queue(BGスレッドで実行される)に操作を追加します。この操作はrenderedGraphOfSize、を呼び出しますUIGraphicsBeginImageContext。それで、取引は何ですか?バックグラウンドでの描画に関しては、アプリでクラッシュが発生するため、Appleの例が混乱している理由がわかりません。

4

2 に答える 2

2

ドキュメントから引用するには:

iOS 4以降では、アプリの任意のスレッドからこの関数を呼び出すことができます。

リンク:http ://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.html

于 2013-06-25T12:05:34.287 に答える
0

UIGraphicsBeginImageContextは、iOS4以降では間違いなくスレッドセーフです。WWDC2012セッションビデオはiOS6に関連しているため、iOS6のドキュメントにも関連する必要があるかもしれません:)

于 2012-07-17T20:51:00.970 に答える