Touchdown 1.2を実装中に気がついたのですが、macOS 10.3 High Sierraから、ファイルのダブルクリックやDockアイコンへのドラッグ時にファイルの検証が実行されることがあるようです。
通常使用では問題ないのですが、巨大なファイルや大量のファイルをドラッグした時に問題が発生。
アプリアイコンへのファイルドラッグを受け付けるNSApplicationDelegateのfunc application(NSApplication, openFiles: [String])が呼び出されるのが非常に遅くなっています。
しかも、もともとこのopenFilesはファイル数が多いと複数回呼び出される謎仕様なので、Touchdownの「まとめて受け取って一括変換」という仕様と相性が悪く、ver.1.1までは短いタイマーを貼って全ファイルの受け取りを待つという残念な実装になっていました。
High Sierraからはかなり長い間隔をあけてopenFilesが複数回呼び出されるケースがあるため、適当な対応では対処しきれなくなったため、変換前に確認する場合の仕様を変更することにしました。
従来:最後にまとめてドラッグされたファイルを変換
Ver1.2:変換確認中にドラッグされたファイルをキューに追加していって変換
これに伴い変換するファイルの管理もArrayからSetに変更して、重複しないようにしました。
OSがバージョンアップするとやはり色々ありますね。
0 件のコメント:
コメントを投稿