GCD を使用する場合、オブジェクトの NSMutableArrayをロックしますが、オブジェクトの残りの部分はロックしません。私は、モーダルに LocationViewController に到達するまでに場所が存在することを期待して、init で gcd を介して場所の配列を設定するユーザー オブジェクトを持っています。user.locations
(ユーザーがビューコントローラーに沿って渡される場所)、そこにない場合は、ピッカーに「読み込み中...」と表示するだけです。
dispatch_sync
メソッド内のユーザーの gcd 内から強制的に更新したいと考えています。ピッカーなどを更新するメソッドを LocationViewController に追加できますが、これに安全にアクセスする方法がわかりません。
私の最初の考えは、場所がそこにない場合(つまり、nil)、ユーザーでこのLocationViewControllerへの参照を設定することでした。locContがnil でない場合はdispatch_sync
、その中でメソッドを呼び出すことができます。[locCont mymethod]
しかし、ユーザー クラスでプロパティを設定する方法がわかりません。
@property (strong, nonatomic) LocationsViewController * locCont;
私が心配しているのは、ユーザーがいつでもログアウトしてルートビューに戻ることができることです。次に設定します
user.locCont = nil
ARC は二日酔いの記憶を適切に分類しますか?
私のもう1つの懸念は、彼らが場所を設定することを選択せず、後で見る場合にどうなるかということです. user.locCont
a で nil に設定することでそれを処理できると思いprepareforsegue
ます。
ユーザーがそこにいる場合、LocationsViewController を更新するより良い方法はありますか?