ユーザーのアクションについてローカルに保存された分析データを保存しようとしているので、後でユーザーがインターネットに接続したときにアップロードできます。通常の状況では、データをローカルに保存し、その後アプリを開いても削除されないようにしたいと思います。データを iCloud に同期したくありません。また、更新間でデータを保持することも理想的です。容量が少ない場合にデータが削除されても問題ありません。
NSCachesDirectory または NSLibraryDirectory のいずれかにデータを保存する場所について、さまざまなソースからさまざまな回答を得ています。注 NSCachesDirectory は NSLibraryDirectory のサブディレクトリです。ファイルシステムは Application_Home/Library/Caches/ のようになります。
公式ドキュメントによると: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW9は私を意味しますNSCachesDirectory を使用してデータを保存する必要があり、ほとんどの状況では削除されません。また、NSLibraryDirectory が iCloud に同期されていることも意味します。
これらの回答によると、iPhoneで書き込み可能なパスを取得するにはどうすればよいですか? 、https://stackoverflow.com/a/5444762/340520/、NSCachesDirectory からのファイルはいつ削除されますか? 、NSCachesDirectory は、アプリの更新と、NSCachesDirectory を常に再作成する必要があるという主張の間で保持されません。最初の答えは、NSLibraryDirectory がデータを保存するのに最適な場所であることも意味しています。ただし、これらの回答は 2 年前のものです。
ドキュメントとこの回答によると:http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10、https://stackoverflow.com/a/8830746/340520、 NSCachesDirectory は、アプリの更新間で保持されます。
Localytics の iOS SDK はデータを NSCachesDirectory に保存します: https://github.com/twobitlabs/Localytics-iOS/blob/master/src/LocalyticsDatabase.m Mixpanel の iOS SDK はデータを NSLibraryDirectory に保存します: https://github.com/ mixpanel/mixpanel-iphone/ブロブ/マスター/Mixpanel/Mixpanel.m
これらすべてのソースの中で、私は NSCachesDirectory を使用することに傾いてきましたが、状況によってはデータが定期的に削除されないという確信はありません。