XMLファイルへの読み取り操作と書き込み操作(2つの異なるスレッドと2つの異なるビューコントローラーによって実行される)が重複している状況に遭遇しています。
2つのViewControllerで同じNSLockを使用するために、次のロジックを試しました。
ViewControllerOne:
(on a background thread using dispatch_async)
- (void)writeToXML {
// get xmlLock (lock declared globally)
// write
// unlock
}
ViewControllerTwo:
(on the main thread)
- (void)readFromXML {
// get xmlLock (lock referenced from ControllerOne)
// read
// unlock
}
ただし、デバッグ中に、ControllerOneがxmlLockをロックしている場合でも、ControllerTwoはそれを取得できることに気付きました。
ここで何が欠けていますか?また、このようなことをするためのより良いアプローチはありますか?