佐崎司と愉快な仲間達ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。管理人が3人いますので、記事にまとまりはないと思います。iPhoneアプリのレビュー依頼も受け付けています。UIDocumentの問題点についてUIDocumentの問題点についてIT関連2015年04月04日わかiOSにはUIDocumentというファイル管理オブジェクトがありますが、使用してみておかしな動作したことを書きます。openWithCompletionHandlerが返ってこないUIDocumentを使用してiCloudの同期処理を試していました。使用してしばらくすると、openWithCompletionHandlerを使用してUIDocumentの内容を読み込もうとすると、いつまでたっても処理が完了しない現象が発生しました。(UIDocumentStateClosed状態でUIDocumentもnilではありません)この現象が発生するとアプリを再起動しても直りません。デバイスを再起動すると直りました。考察デバイスを再起動することで現象が発生しなくなることから、iOS側が何らかのおかしな状態に陥っていることが分かります。Xcodeでログを確認するとUIDocumentの内部処理でセマフォロックされていました。現象発生前に高速でopenWithCompletionHandlerを呼び出していました。デバッグ中だったので、その際にアプリを強制終了させたかもしれません。それで、iOS側のセマフォが解放する前に終了したことが原因かと推測しました。高速でopenWithCompletionHandlerを呼び出さない方が良いです。確実ではありませんが、この対策を行ってからは現象が発生していません。以下に条件を変更してみました。意味ない気もしますが、サンプルソースがそうなっていたので。UIDocumentStateClosed)この現象の恐ろしいのはUIDocumentnoの非同期キューがどんどん溜まってしまい、メモリリークで落ちることです。デバイスを再起動するまで続きます。使わないでいいのであれば、UIDocumentは使わない方がいいかもしれません・・・。自己紹介:3人でそれぞれ気ままに書き込むblogです。iPhoneアプリのレビュー依頼は下記メールまでお願いします。Javaなど・主な投稿ジャンル-iOS開発の備忘録-アニメ(雑多いろいろ)-ゲーム(主にRPG、アドベンチャー)***著作権など各権利について***このブログは著作権の侵害を目的としたサイトではありません。ブログで掲載している動画及び画像の著作権または肖像権等は各権利所有者様に帰属致します。掲載や記事に問題がある物がありましたらお手数ですがメッセージ、コメント欄まで、お願いします。確認次第直ちに対処致します。記載している内容は個人的な見解ですので間違っている場合もあります。何かしらの損害を被っても、当サイトは一切の責任を負いませんのでご了承ください。テンプレにいさん©佐崎司と愉快な。