私はGCDディスパッチキューを作成して、新しい管理対象オブジェクトの作成と保存を非同期で処理します。GCDのdispatch_queue_t as ivar - メモリ管理?
まず、これをインスタンス変数として作成する必要がありますか?私が(仮定的な)方法-newObjectWithProperties:
を持っていて、ローカルでラベル"com.myapp.coredata"
でキューを作成したとします。次に-newObjectWithProperties:
と呼んで同じラベルのキューを再作成しますが、そのキューの以前のバックグラウンドタスクはまだ不完全ですが、そのキューのローカルな「レクリエーション」は同じ実際のキューに対応しますか?それとも、例外を投げますか?後者の場合、クラス全体のインスタンス変数がキューに必要であると推測します。
ivarが必要であると仮定すると、これに対してどのようにメモリ管理を行うべきですか?私は-init
にdispatch_queue_create()
を使用し、にdispatch_release()
と呼んでいますか?
キューの存在を確認する方法はありますか、単に変数が 'nil'ですか? – Stuart
いいえ、私はヌルチェックを使用します。それが不透明なタイプなので、Nilが動作するかどうかはわかりません。 Nilが今働いているのかどうかは思い出せません。 – RyanR