Swift2でRealmのデータベースをどこに置けばいいのですか?(iOSの場合)

投稿者: Anonymous

OSXの場合

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let realmPath = (paths[0] as NSString).stringByAppendingPathComponent("data.realm")

で指定できるが、iOSの場合標準はどこになるのですか?

解決

アプリケーションが使うディレクトリ構成は少し減っているだけでOS Xとほぼ変わりません。
その中でも特にiOSではDocumentsディレクトリか、Library/Caches/ディレクトリを使います。

プログラムから指定する方法もOS Xと同じです。

NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
// => Documents/

NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
// => Librery/Cashes

Documentsディレクトリは標準でiCloudバックアップの対象になり、Library/Caches/ディレクトリはそうではないなどの違いがあります。

詳しくはアップルのリファレンスをご覧ください。

https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW1

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html#//apple_ref/doc/uid/TP40007072-CH7-SW17

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *