63

Erica Sadun のiPhone Developer's Cookbookを読んでいて、ある質問に出くわしました。

彼女は本の中で、ユーザーの Documents ディレクトリを見つける方法は次のコードであると言っています:

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

しかし、それは少しもろく、通常の Mac の方法とは異なります。

NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);

どちらか一方を使用する特定の理由はありますか?

4

5 に答える 5

95

オブジェクト:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

迅速:

var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)

返された配列の最初の要素が必要になります。

于 2008-11-07T16:48:34.807 に答える
50

フレームワークで使用するコードは次のとおりです。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
于 2008-12-06T23:37:23.683 に答える
16

推奨形式である URL を返す FileManager メソッドの使用を検討する必要があります。

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first

このメソッドは、システム内の既知の共通ディレクトリを見つけることを目的としています。

要求されたディレクトリを識別する URL オブジェクトの配列。ディレクトリは、ドメイン マスク定数の順序に従って並べられます。ユーザー ドメインの項目が最初で、システム ドメインの項目が最後です。

于 2012-10-11T23:34:22.393 に答える
1

私はこれを使います

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipLocalPath = [documentPath stringByAppendingString:fileName];
于 2015-01-17T03:25:50.113 に答える