| 4 | |
| 5 | 対策メモ |
| 6 | <原因> |
| 7 | 下記の条件を満たす場合に問題発生する。 |
| 8 | ・presentedItemDidChangeの中で当該ファイルのreadを行っている。 |
| 9 | ・そのreadのfile coordinatorのoptionにNSFileCoordinatorReadingWithoutChangesフラグはつけていない。 |
| 10 | →おそらくfile coordinatorが他プロセスのsavePresentedItemChangesWithCompletionHandlerを呼ぶ処理と、presentedItemDidChangeのリターンがOS内でデッドロックを起こしている。必ずしも問題発生しない(1/300程度の確率)ので、おそらくタイミングイシュー。 |
| 11 | Appleドキュメントに特に記述は見つけられなかった。OS不具合の可能性あり? |
| 12 | <対策> |
| 13 | ・presentedItemDidChangeの中で直接readせず、内部イベントキューにイベントを積む。 |
| 14 | ・file coordinatorのread処理にNSFileCoordinatorReadingWithoutChangesを付ける。 |
| 15 | |