2011-10-02 7 views
1

を混同しました。次の行で:NSSearchPathForDirectoriesInDomainsの説明は、私はちょうどファイルが存在するかどうかをチェックするこのコードを研究してきた

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

[OK]を私は、メソッドNSSearchPathForDirectoriesInDomainsは、あなたがこのメソッドに渡す引数に応じて、パスを返すことを理解します。しかし、このユーザー(コードを書いた人)は、盲目的にクラス全体を渡しています! (NSDocumentDirectory、NSUserDOmainMaskを参照してください)。彼が正しく渡すのはBOOL YESだけです。私はリンゴのドキュメントをチェックして、次のように言います:

NSSearchPathForDirectoriesInDomainsディレクトリ検索パスのリストを作成します。

NSArray * NSSearchPathForDirectoriesInDomains (
NSSearchPathDirectory directory, 
NSSearchPathDomainMask domainMask, 
BOOL expandTilde 
); 

私はリンゴのドキュメントにNSSearchPathDirectoryとNSSearchPathDomainMaskを探していると彼らは私がこれは数がメソッドに渡される必要があることをお勧め数

を渡す必要が示唆?誰かがその行を説明できますか?ここFoundationフレームワーク定数のおかげ

答えて

11

読むのドキュメント:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/c_ref/NSDocumentDirectory

ものは、クラスが、定数ではありませんので、正しい使い方です!


NSSearchPathDomainMask

NSSearchPathDirectoryタイプのベースの場所を指定する検索パスドメイン定数。

enum { 
    NSUserDomainMask = 1, //this one 
    NSLocalDomainMask = 2, 
    NSNetworkDomainMask = 4, 
    NSSystemDomainMask = 8, 
    NSAllDomainsMask = 0x0ffff, 
}; 
typedef NSUInteger NSSearchPathDomainMask; 

NSSearchPathDirectory

これらの定数は、ディレクトリの様々な場所を指定します。

enum { 
    NSApplicationDirectory = 1, 
    NSDemoApplicationDirectory, 
    NSDeveloperApplicationDirectory, 
    NSAdminApplicationDirectory, 
    NSLibraryDirectory, 
    NSDeveloperDirectory, 
    NSUserDirectory, 
    NSDocumentationDirectory, 
    NSDocumentDirectory, // this one 
    NSCoreServiceDirectory, 
    NSAutosavedInformationDirectory = 11, 
    NSDesktopDirectory = 12, 
    NSCachesDirectory = 13, 
    NSApplicationSupportDirectory = 14, 
    NSDownloadsDirectory = 15, 
    NSInputMethodsDirectory = 16, 
    NSMoviesDirectory = 17, 
    NSMusicDirectory = 18, 
    NSPicturesDirectory = 19, 
    NSPrinterDescriptionDirectory = 20, 
    NSSharedPublicDirectory = 21, 
    NSPreferencePanesDirectory = 22, 
    NSItemReplacementDirectory = 99, 
    NSAllApplicationsDirectory = 100, 
    NSAllLibrariesDirectory = 101 
}; 
typedef NSUInteger NSSearchPathDirectory; 
関連する問題