1

cocoa でアプリケーションを開発しています。選択したフォルダー内のすべての曲を検索する必要があります。選択したフォルダー内のすべてのコンポーネントを取得するために「subpathsAtPath」を使用しました。ユーザーが /User/Music のような特定のフォルダを選択した場合、これは正常に機能します。しかし、ユーザーが「/」のようなルート ディレクトリを選択した場合、このメソッドはハングします。この問題を解決する方法はありますか。前もって感謝します.....

4

1 に答える 1

2

ケントが言ったように、このメソッドがハングする可能性は低いです。実行に時間がかかり、戻るまでスレッドでの実行がブロックされるだけです。

の使用を検討してくださいenumeratorAtPath:。NSDirectoryEnumerator を使用し、一度に 1 つのディレクトリを提供します。これにより、メモリの面でコストがかかる非常に大きな配列を作成する必要がなくなります。また、作業をチャンク (NSOperations?) に分割しやすくすることで、別のスレッドにプッシュすることができます。これは、完了するまでにかかる時間を考えると、おそらく良い考えです。NSDirectoryEnumerator を使用すると、列挙をある程度制御できます。つまり、-skipDescendents[sic] を呼び出して列挙ツリーを整理できます。

于 2009-08-14T14:28:29.927 に答える