Finder Sync拡張機能を実装していますが、実装で奇妙な問題が発生しましたFIFinderSync
。
コールバックbeginObservingDirectoryAtURLは常に呼び出されるわけではありません。通常、ルートフォルダーの下の最初または2番目のレベルで呼び出されない場合。
誰かが同様の問題に遭遇しましたか? とにかく、欠落している可能性のあるコールバックを強制するには?
Finder Sync拡張機能を実装していますが、実装で奇妙な問題が発生しましたFIFinderSync
。
コールバックbeginObservingDirectoryAtURLは常に呼び出されるわけではありません。通常、ルートフォルダーの下の最初または2番目のレベルで呼び出されない場合。
誰かが同様の問題に遭遇しましたか? とにかく、欠落している可能性のあるコールバックを強制するには?
私は現在、同様の問題に遭遇しています。
私が判断したのは、拡張機能のプロセスの実行中に、Finder Sync 拡張機能が FIFinderSync オブジェクトの割り当てを解除して再割り当てすることです。これは、アプリケーションが起動時に拡張機能を無効にしてから再度有効にした場合に発生する可能性があります。また、プロセスの実行中にユーザーが拡張機能を無効にしてから再度有効にした場合にも発生する可能性があります。
これを診断するには、FIFinderSync オブジェクトの initメソッドと deallocメソッドにロギングを追加することをお勧めします。FIFinderSync への参照を保持するオブジェクトが弱い参照を使用していることを確認してください。これにより、FIFinderSync が適切に割り当て解除されていることがわかります。
また、FIFinderSync は、2 回目、3 回目などの再初期化で製品への接続を回復することを許容する必要があります。これが私の究極の問題でした。私の拡張機能は、既に確立されている接続を製品のメイン プロセスに戻していませんでした。