Erica SadunのiPhone Developer's Cookbookを読んでいて、質問にぶつかりました。
彼女は本の中で、ユーザーのDocumentsディレクトリを見つける方法はコードであると言っています。
[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
しかし、それは少しもろく、普通のMacのやり方とは似ていません。
NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);
どちらか一方を使用する特定の理由はありますか?
Objc:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
迅速:
var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
返される配列の最初の要素が必要になります。
これが私のフレームワークで使用するコードです。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
このメソッドは、システム内の既知の共通ディレクトリを見つけることを目的としています。
要求されたディレクトリを識別するNSURLオブジェクトの配列。ディレクトリは、ドメインマスク定数の順序に従って順序付けられ、ユーザードメインの項目が最初に、システムドメインの項目が最後になります。
私はこれを使用します
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];
Swift v3では、次のスニペットを使用しました
var paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)