2016-04-12 4 views
0

iOSアプリのディスクに何百ものファイルをキャッシュする必要がある場合は、それらをすべてアプリケーションのドキュメントフォルダに保存するのは賢明でしょうか? (キャッシュされ、24-48時間後に削除されます)。フォルダにファイルが多すぎると、特定のファイルの検索が遅くなるなどの欠点はありますか?または、パフォーマンス上の理由から別のフォルダに保存する必要がありますか? iOSのベストプラクティスとは何ですか?iOSアプリで何百ものファイルを24〜48時間キャッシュする:ドキュメントフォルダ内のファイルはどれですか?

+0

上の異なるストレージタイプのより詳細な説明についてhttps://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.htmlはそれを試してみてください参照してください。どんなアプローチが効果的かを確認してください。 – rmaddy

+0

@rmaddyこれは計画です。単に積極的に行動して、パフォーマンスを超えて他の問題があるかどうか、標準的な設計パターンがあるかどうかを調べることができます。 – Crashalot

答えて

2

iTunesのファイル共有を介してアクセスできるため、おそらくドキュメントフォルダに保存したくない場合があります。通常、それらをキャッシュディレクトリに格納します。あなたは、システムがあなたにNSLibraryDirectoryを渡すことによって、ライブラリディレクトリの代わりに、キャッシュを使用する場合があります収納スペースが不足している場合、これらのファイルは、iOS版で削除されてはならない場合によっては

[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask].firstObject 

を使用してキャッシュのURLにアクセスすることができます代わりのNSCachesDirectory

上記の方法では、iOS

+0

ありがとうございましたが、複数のフォルダを使用すると、それらをすべて同じフォルダに保存するのが賢明ですか、パフォーマンスが向上しますか? – Crashalot

+0

何百ものファイルがそれほど多くないと思うのですが、私の推測では、同じフォルダ内にすべてのファイルを置いてもパフォーマンスに影響はありません。それを試して、それが問題かどうかを確認してください。もしそうなら(あるいは別にそれらを整理したいのであれば)、それを行うための余分なコードを書きますが、私はそれらをキャッシュして、それがどうなっていくか見ることから始めるでしょう:) – GracelessROB

+1

パフォーマンスはおそらくテストするべきものになるでしょう。あなたが何千ものファイルを保存しない限り、アクセス時間に顕著な低下がある場合、私は驚くでしょう。私はあなたが簡単なテストアプリを書くことを念頭に置いてシナリオを試してみることをお勧めします。しかし、あなたが大きな問題にぶつからない限り、私は最も簡単なことは何でも一緒に行きます。ディレクトリを追加すると、コードが複雑になります。 – drekka