今作ってるiPadのPDFリーダ。バカでかいPDFにannotationを書き込むと、UIがロックする。

しかしiOS標準のPDFDocumentはスレッドセーフじゃないそうで、メインスレッド以外で触るのは危ない、そうな。別スレッドでセーブする実装にしてしばらくいじってたらほんとにPDFが壊れたw

こんなのいったいどうやって解決すればいいんじゃ、ってClaudeに相談するも軽減策しかなくて、解決策が出てこない…。コピーしたファイルに書き込むなら、それは別インスタンスだからいいんだけど、そのコピーしたファイルをまた書き戻すところで同じことになる…

あ! コピーしたファイルを表示用に使って、別スレッドで時々アノテーションを元ファイルに書けばいいじゃん!!!と思いついた。Claudeには「発想の転換ですね!」って褒められる。

いまんとこ、うまくいってる。書き込み時、使うメモリが表示用と合わせてPDF2個分…と思ったが、思ったほど食わないのが不思議。

0

If you have a fediverse account, you can quote this note from your own instance. Search https://sandbox.skoji.jp/users/skoji/statuses/116203894112293764 on your instance and quote it. (Note that quoting is not supported in Mastodon.)