NSDictionary
以下に記述したのは、C言語及び Objective-C での NSDictonary の記事です。Swift の Dictioinary に関しては、こちら Dictionary を参照してください。
継承
準拠
NSCopying, NSFastEnumeration, NSSecureCoding, NSMutableCopying, NSObject(Protocol)
フレームワーク
OS X 10.0 以降の Foundation。関連事項
概観
NSDictionary クラスは、キー値の不変(immutable) の関連付けを管理するオブジェクトへのプログラムインターフェイスを宣言します。ある任意のキーに関連付けられたデータを取得するために便利で効率的な方法が必要なときには、このクラスまたはそのサブクラス NSMutableDictionary を使用してください。NSDictionary は、静的な辞書を作成し、NSMutableDictionary は、動的な辞書を作成します。(便宜上、辞書(dictionary) という用語は、その正確なクラスのメンバーシップを指定せずにこれらのクラスの1つの任意のインスタンスを指します。)
辞書内のキー値のペアはエントリと呼ばれています。各エントリは、1つのオブジェクトから成り、キーを表す一つのオブジェクトとそのキーの値である、第二のオブジェクトで構成されています。辞書の中では、キーはユニーク(一意的) です。すなわち、同じ1つの辞書では2つのキーは等しくなりません(isEqual: によって確かめられます)。一般的に、キーはあるオブジェクトですが(NSCopying プロトコルに準拠して提供されていますー下記を参照して下さい)、キー値コーディングを使用する場合にはキーは文字列でなければならないことに注意してください(キー値コーディングの基礎 を参照)。キーや値は nil であることはできず、辞書に null 値を表す必要がある場合は、NSNull を使用する必要があります。
NSDictionary は、Core Foundationの相手、CFDictionaryRef と「自由通話で繋がって」います。自由通話で繋がっている事の詳細については、自由通話で繋がっているを参照してください。
サブクラス化の注意事項
一般的に NSDictionary はサブクラス化する必要はありません。カスタム動作は、通常はサブクラス化ではなく組成によって達成されます。
オーバーライドするメソッド
NSDictionary をサブクラス化する必要がある場合、それはクラスクラスタであることを考慮に入れて下さい。すべてのサブクラスは、以下のプリミティブメソッドをオーバーライドしなければなりません。
initWithObjects:forKeys:count:
NSDictionary の他のメソッドは、これらのプリミティブの一つ以上を呼び出すことによって操作します。非プリミティブメソッドは、一度に複数のエントリにアクセスする便利な方法を提供します。
サブクラス化の代替手段
NSDictionary のカスタムクラスを作成する前に、NSMapTable と、対応する Core Foundation のタイプ、CFDictionary リファレンス を調査しましょう。 NSDictionary と CFDictionary は「自由通話で繋がっている」ため、(適切なキャストで) コード内の NSDictionary オブジェクトの代わりに CFDictionary オブジェクトを使うことができます。これらはタイプが対応していますが、CFDictionary と NSDictionary は、同一のインターフェイスや実装を持っておらず、時々 NSDictionary で簡単に行うことができないことを、CFDictionary で行なうことができます。
もし既存のクラスの、補足を追加したい動作がある場合、NSDictionary 上のカテゴリを書く事ができます。しかしながら、このカテゴリは、使用する NSDictionary のすべてのインスタンスに対して有効にされることを、覚えておき、これは意図しない結果になるかもしれません。あるいは、目的の動作を達成するために合成物を使用できます。
タスク
辞書作成
+ dictionary
空の辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)dictionary
戻り値
新しい空の辞書。
議論
このメソッドは、NSDictionary の可変サブクラスでおもに使用するために宣言されています。
一時的なオブジェクトを望まない場合は、alloc... と init を使用して空の辞書を作成することもできます。
利用可能
OS X v10.0 以降で利用可能。
+ dictionaryWithContentsOfFile:
与えられたパスで指定されたファイルで見つかったキー値を使用して辞書を作成し、返す。
宣言
<< OBJECTIVE-C >>
+ (NSDictionary<KeyType,ObjectType> *)dictionaryWithContentsOfFile:(NSString *)path
パラメータ
path | フルパスまたは相対パス名。path によって識別されるファイルは、ルートオブジェクトが辞書であるプロパティリストの文字列表現を含んでいなければなりません。 |
戻り値
path の辞書の内容を含む新しい辞書か、ファイルの内容が辞書の無効な表現である場合か、そこにファイルエラーが発生した場合、nil になります。
議論
path によって識別されるファイル内の辞書表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray または NSDictionary オブジェクト) だけを含んでいなければなりません。詳細については、プロパティリスト・プログラミングガイド を参照してください。この辞書に含まれるオブジェクトは辞書が変更可能であっても、変更不能(immutable)です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithContentsOfURL:
与えられた URL で指定されたリソースで見つかったキー値を使用して辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (NSDictionary<KeyType,ObjectType> *)dictionaryWithContentsOfURL:(NSURL *)aURL
パラメータ
aURL | そのルートオブジェクトは辞書である、プロパティリストの文字列表現を含むリソースを識別する URL。 |
戻り値
リソースの内容が、辞書の無効な表現である場合か、エラーがある場合 nil になるか、aURL の場所の辞書を含む新しい辞書。
議論
path によって識別されるファイル内の辞書表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。詳細については、プロパティリストプログラミングガイド を参照してください。この辞書に含まれるオブジェクトは辞書が変更可能であっても、変更不能です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithDictionary:
別の与えられた辞書からキー値を含む辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)dictionaryWithDictionary:(NSDictionary<KeyType, ObjectType> *)otherDictionary
パラメータ
otherDictionary | 新しい辞書を初期化するためのキー値を含む辞書。 |
戻り値
otherDictionary で見つかったキー値を含む新しい辞書。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObject:forKey:
与えられたキー値を含む辞書を作成し、返します。
宣言
<< SWIFT >>
convenience init(object object: AnyObject, forKey key: NSCopying) << OBJECTIVE-C >> + (instancetype)dictionaryWithObject:(ObjectType)anObject forKey:(id<NSCopying>)aKey
パラメータ
anObject | aKey に対応する値。 この値が nil の場合、NSInvalidArgumentException の例外が発生します。 |
aKey | anObject に対するキー。 この値が nil の場合、NSInvalidArgumentException の例外が発生します。 |
戻り値
単一のキー、aKey に対する単一のオブジェクト、anObject を含む新しい辞書。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObject:forKey:
+ dictionaryWithObjects:forKeys:count:
+ dictionaryWithObjectsAndKeys:
+ dictionaryWithObjects:forKeys:
キーの配列と値の配列の内容から構成されたエントリを含む辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)dictionaryWithObjects:(NSArray<ObjectType> *)objects forKeys:(NSArray<id<NSCopying>> *)keys
パラメータ
objects | 新しい辞書の値を含む配列。 |
keys | 新しい辞書のキーを含む配列。各キーは、コピーされ、(copyWithZone: を使用して。キーは NSCopying プロトコルに準拠していなければなりません)コピーが辞書に追加されます。 |
戻り値
objects と keys の内容から構成されたエントリを含む新しい辞書。
議論
このメソッドは、objects と keys の配列の間をステップを踏むように繰り返し経由し、ステップ毎に新しい辞書内のエントリを作って行きます。オブジェクトとキーが同じ数の要素を持っていない場合には、 NSInvalidArgumentException の例外が発生します。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObject:forKey:
+ dictionaryWithObjects:forKeys:count:
+ dictionaryWithObjectsAndKeys:
+ dictionaryWithObjects:forKeys:count:
objects の配列から、count のオブジェクトを含む辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)dictionaryWithObjects:(const ObjectType _Nonnull [])objects forKeys:(const id<NSCopying> _Nonnull [])keys count:(NSUInteger)count
パラメータ
objects | 新しい辞書の値の C 言語の配列。 |
keys | 新しい辞書のキーの C 言語の配列。各キーは、コピーされ(copyWithZone:を使用して。キーは NSCopying プロトコルに準拠していなければなりません)、コピーが新しい辞書に追加されます。 |
count | keys と objects の配列から使用する要素の数。count は、objects と keys 内の要素数を超えてはなりません。 |
議論
このメソッドは、objects と keys 配列の間の行き来を繰り返し、新しい辞書内のエントリを作成します。キーまたは値オブジェクトが nil の場合は NSInvalidArgumentException の例外が発生します。
以下のコードは、ASCII 値とアルファベット文字を関連付ける辞書を作成する方法を示しています。
- static const NSInteger N_ENTRIES = 26;
- NSDictionary *asciiDict;
- NSString *keyArray[N_ENTRIES];
- NSNumber *valueArray[N_ENTRIES];
- NSInteger i;
- for (i = 0; i < N_ENTRIES; i++) {
-         char charValue = 'a' + i;
-         keyArray[i] = [NSString stringWithFormat:@"%c", charValue];
-         valueArray[i] = [NSNumber numberWithChar:charValue];
- }
- asciiDict = [NSDictionary dictionaryWithObjects:(id *)valueArray
-                         forKeys:(id *)keyArray count:N_ENTRIES];
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- initWithObjects:forKeys:count:
+ dictionaryWithObject:forKey:
+ dictionaryWithObjects:forKeys:
+ dictionaryWithObjectsAndKeys:
+ dictionaryWithObjectsAndKeys:
値とキーの特定のセットから構築されたエントリを含む辞書を作成し、返します。
宣言
<< OBJECTIVE-C >>
+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject
, ...
パラメータ
firstObject | 新しい辞書に追加する最初の値。 |
... | firstObject のための最初のキー、そして値とキーが交互に続き、null で終了するリスト。いずれかのキーが nil の場合、NSInvalidArgumentException の例外が発生します。 |
議論
このメソッドは、dictionaryWithObject:forKey:に似ています。ただ、キー値のペアが指定されている方法が異なります。
たとえば:
- NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
-         @"value1", @"key1", @"value2", @"key2", nil];
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObject:forKey:
+ dictionaryWithObjects:forKeys:
+ dictionaryWithObjects:forKeys:count:
NSDictionary インスタンスの初期化
- init 指定イニシャライザ
新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
init()
<< OBJECTIVE-C >>
- (instancetype)init
戻り値
辞書。
議論
このメソッドは、NSDictionary の指定イニシャライザです。
利用可能
OS X v10.9 以降で利用可能。
以下も見よ
- initWithObjects:forKeys:count:
- initWithContentsOfFile:
与えられたパスにあるファイルで見つかったキー値を使用して、新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
convenience init?(contentsOfFile path: String)
<< OBJECTIVE-C >>
- (NSDictionary<KeyType,ObjectType> *)initWithContentsOfFile:(NSString *)path
パラメータ
path | フルパスまたは相対パス名。path によって識別されるファイルには、プロパティリストのルートオブジェクトが辞書である文字列表現を含んでいなければなりません。 |
戻り値
初期化された辞書は元の受信者とは異なる場合がありますが、path の所の辞書を含み、ファイルエラーがある場合や、ファイルの内容が、辞書の無効な表現である場合、nil。
議論
path によって識別されるファイル内の辞書表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。詳細については、プロパティリストプログラミングガイド を参照してください。この辞書に含まれるオブジェクトは辞書が変更可能であっても、変更不能です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithContentsOfFile:
- initWithContentsOfURL:
与えられた URL で見つかったキー値を使用して、新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
<convenience init?(contentsOfURL url: NSURL)
<< OBJECTIVE-C >>
- (NSDictionary<KeyType,ObjectType> *)initWithContentsOfURL:(NSURL *)aURL
パラメータ
aURL | プロパティリストのルートオブジェクトが辞書である文字列表現を含むリソースを識別する URL。 |
戻り値
初期化された辞書は元の受信者と異なる場合がありますが、aURL の所の辞書を含み、ファイルエラーがある場合や、リソースの内容が辞書の無効な表現である場合、nil。
議論
path によって識別されるファイル内の辞書表現は、プロパティリストオブジェクト(NSString、NSData、NSDate、NSNumber、NSArray、または NSDictionary オブジェクト) のみを含んでいる必要があります。詳細については、プロパティリストプログラミングガイド を参照してください。この辞書に含まれるオブジェクトは辞書が変更可能であっても、変更不能です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithContentsOfURL:
- initWithDictionary:
別の与えられた辞書に含まれるキー値をその中に置くことで、新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
convenience init(dictionary otherDictionary: [NSObject : AnyObject])
<< OBJECTIVE-C >>
- (instancetype)initWithDictionary:(NSDictionary<KeyType, ObjectType> *)otherDictionary
パラメータ
otherDictionary | 新しい辞書を初期化するためにどのキー値で行なうかを含む辞書。 |
戻り値
初期化された辞書は、元の受信者とは異なる場合がありますが、otherDictionary で見つかったキー値を含みます。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- initWithDictionary:copyItems:
別の与えられた辞書に含まれているオブジェクトを使用して、新しく割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
convenience init(dictionary otherDictionary: [NSObject : AnyObject], copyItems flag: Bool) << OBJECTIVE-C >> - (instancetype)initWithDictionary:(NSDictionary<KeyType, ObjectType> *)otherDictionary copyItems:(BOOL)flag
パラメータ
otherDictionary | 新しい辞書を初期化するためにどのキー値で行なうかを含む辞書。 |
flag | もし YES なら、otherODictionary の各オブジェクトは copyWithZone: メッセージを受けて、オブジェクトのコピーを作成しますが、オブジェクトは NSCopying プロトコルに準拠している必要があります。管理されたメモリ環境では、これは、オブジェクトが他の場合受け取る、retain メッセージの代わりです。その後オブジェクト·コピーが戻された辞書に追加されます。 もし NO なら、管理されたメモリ環境では、otherDictionary 内の各オブジェクトは単に retain メッセージを、返された辞書に追加されたときに受信します。 |
戻り値
初期化された辞書は、元の受信者とは異なる場合がありますが、otherDictionary で見つかったキー値を含みます。
議論
変更不能の辞書は、このように初期化された後、変更することはできません。
copyWithZone: メソッドは、浅いコピーを実行します。もし任意の深さのコレクションを持っている場合は、flag パラメータに YES を渡し、表面下の最初のレベルの変更不能コピーを実行します。もし NO を渡すと最初のレベルの可変性は影響を受けません。いずれの場合も、すべてのより深いレベルの可変性は影響を受けません。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- initWithObjects:forKeys:
objects や keys 配列の内容から構成されるエントリで新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
convenience init(objects objects: [AnyObject], forKeys keys: [NSCopying]) << OBJECTIVE-C >> - (instancetype)initWithObjects:(NSArray<ObjectType> *)objects forKeys:(NSArray<id<NSCopying>> *)keys
パラメータ
objects | 新しい辞書の値を含む配列。 |
keys | 新しい辞書のキーを含む配列。各キーは(copyWithZone: を使用して。キーは NSCopying プロトコルに準拠している必要があります)コピーされ、コピーが新しい辞書に追加されます。 |
議論
このメソッドは、objects と keys の配列の間を交互に行き来し、その度にに新しい辞書のエントリを作成します。オブジェクトとキーの配列が同じ数の要素を持っていない場合Nは >NSInvalidArgumentException の例外が発生します。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObjects:forKeys:
- initWithObjects:forKeys:count:
- initWithObjects:forKeys:count: 指定イニシャライザ
count の数のエントリで新たに割り当てられた辞書を初期化します。
宣言
<< SWIFT >>
init(objects objects: UnsafePointer<AnyObject?>, forKeys keys: UnsafePointer<NSCopying?>, count cnt: Int) << OBJECTIVE-C >> - (instancetype)initWithObjects:(const ObjectType _Nonnull [])objects forKeys:(const id<NSCopying> _Nonnull [])keys count:(NSUInteger)count
パラメータ
objects | 新しい辞書の値の C 言語の配列。 |
keys | 新しい辞書のキーの C 言語の配列。各キーはコピーされ、(copyWithZone: を使用して。キーは NSCopying プロトコルに準拠している必要があります) コピーが新規の辞書に追加されます。 |
count | keys と objects の配列から使用する要素の数。count は、objects や keys 内の要素数を超えてはなりません。 |
議論
このメソッドは、objects と keys の配列の間を交互に行き来し、その度にに新しい辞書のエントリを作成します。キーまたは値のオブジェクトが nil の場合は NSInvalidArgumentException の例外が発生します。
このメソッドは、NSDictionary の指定イニシャライザです。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObjects:forKeys:count:
- initWithObjectsAndKeys:
値とキーの特定のセットから構築されたエントリで、新たに割り当てられた辞書を初期化します。
宣言
<< OBJECTIVE-C >>
- (instancetype)initWithObjectsAndKeys:(id)firstObject
, ...
パラメータ
firstObject | 新しい辞書に加えるべき、最初の値。 |
... | 最初のキーは firstObject のためであり、交互に値とキーが続き、null で終了するリスト。いずれかのキーが nil だと、NSInvalidArgumentException の例外が発生します。 |
議論
このメソッドは、initWithObjects:forKeys: に似ています。ただ、キー値のペアが指定される方法が異なります。
たとえば:
<< OBJECTIVE-C >>
- NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
-         @"value1", @"key1", @"value2", @"key2", nil];
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
+ dictionaryWithObjectsAndKeys:
- initWithObjects:forKeys:count:
共有鍵で最適化された辞書用キーセットの作成
+ sharedKeySetForKeys:
指定されたキーの共有キーセットオブジェクトを作成します。
宣言
<< SWIFT >>
class func sharedKeySetForKeys(_ keys: [NSCopying]) -> AnyObject
<< OBJECTIVE-C >>
+ (id)sharedKeySetForKeys:(NSArray<id<NSCopying>> *)keys
パラメータ
keys | キーの配列。このパラメータが nil の場合、例外が起こります。キーの配列が空の場合、空のキーセットが返されます。 |
戻り値
共有キーセットのオブジェクト。
議論
重複を含む keys の配列は静かに無視されます。重複したキーのハッシュ値は静かに許可されますが、より低い性能の原因となり、メモリ使用量を増加させる原因となります。
通常は、共有鍵の辞書を作成する前に、一度キーの与えられたセットに対して共有キーセットを作成し、NSMutableDictionary クラスメソッド dictionaryWithSharedKeySet: で使用するため、このメソッドの結果を保存します。
利用可能
OS X v10.8 以降で利用可能。
エントリを数える
count プロパティ
辞書内のエントリの数。(読み取り専用)
宣言
<< SWIFT >>
var count: Int { get }
<< OBJECTIVE-C >>
@property(readonly) NSUInteger count
利用可能
OS X v10.0 以降で利用可能。
辞書の比較
- isEqualToDictionary:
受信者の辞書の内容が別の与えられた辞書の内容と等しいかどうかを示すブール値を返します。
宣言
<< SWIFT >>
func isEqualToDictionary(_ otherDictionary: [NSObject : AnyObject]) -> Bool
<< OBJECTIVE-C >>
- (BOOL)isEqualToDictionary:(NSDictionary<KeyType, ObjectType> *)otherDictionary
パラメータ
otherDictionary | 受信者の辞書と比較するべき辞書。 |
戻り値
もし otherDictionary の内容が、受信者の辞書の内容に等しいければ YES そうでなければ NO。
議論
それぞれの辞書が同じ数のエントリを持っていて、与えられたキーを持っている場合、2つの辞書は等しい内容を持っており、各辞書の対応する値オブジェクトは isEqual: テストをを満たします。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
isEqual:(NSObject プロトコル)
キー値へのアクセス
allKeys プロパティ
辞書のキーを含む新しい配列、または辞書にエントリを全くなければ空の配列。(読み取り専用)
宣言
<< SWIFT >>
var allKeys: [AnyObject] { get }
<< OBJECTIVE-C >>
@property(readonly, copy) NSArray < KeyType > *allKeys
議論
配列内の要素の順序は定義されていません。
利用可能
OS X v10.0 以降で利用可能。
- allKeysForObject:
辞書内の与えられたオブジェクトの出現場所全てに対応するキーを含む新しい配列を返します。
宣言
<< SWIFT >>
func allKeysForObject(_ anObject: AnyObject) -> [AnyObject]
<< OBJECTIVE-C >>
- (NSArray<KeyType> *)allKeysForObject:(ObjectType)anObject
パラメータ
anObject | 辞書で探すべき値。 |
戻り値
辞書内の anObject の出現場所全てに対応するキーを含む新しい配列。anObject に一致するオブジェクトが全く見つからない場合、空の配列を返します。
議論
それが anObject と等しいかどうかを確認するため、isEqual: メッセージが辞書内の各オブジェクトに送信されます。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
allValues プロパティ
辞書の値を含む新しい配列、または辞書にエントリが全くない場合は空の配列。(読み取り専用)
宣言
<< SWIFT >>
var allValues: [AnyObject] { get }
<< OBJECTIVE-C >>
@property(readonly, copy) NSArray < ObjectType > *allValues
議論
配列内の値の順序は定義されません。
利用可能
OS X v10.0 以降で利用可能。
getObjects:andKeys:
(OS X v10.11)辞書内のキー値の C 配列の参照で返します。
宣言
<< SWIFT >>
func getObjects(_ objects: AutoreleasingUnsafeMutablePointer<AnyObject?>, andKeys keys: AutoreleasingUnsafeMutablePointer<AnyObject?>) << OBJECTIVE-C >> - (void)getObjects:(ObjectType _Nonnull [])objects andKeys:(KeyType _Nonnull [])keys
パラメータ
objects | 戻ったときに、辞書内の値の C の配列を含んでいます。 |
keys | 戻ったときに、辞書のキーの C の配列を含んでいます。 |
議論
返される配列内の n 番目のオブジェクトがキーで、1対1でキーに対応するように返された配列やキー配列の要素。
利用可能
OS X v10.5 以降で利用可能。
OS X 10.11 で旧式となりました。
以下も見よ
- objectsForKeys:notFoundMarker:
- objectForKey:
与えられたキーに関連した値を返します。
宣言
<< SWIFT >>
func objectForKey(_ aKey: AnyObject) -> AnyObject? << OBJECTIVE-C >> - (ObjectType)objectForKey:(KeyType)aKey
パラメータ
aKey | 対応する値を返すためのキー。 |
戻り値
aKey に関連した値、aKey に関連した値がない場合 nil。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- objectForKeyedSubscript:
与られたキーに関連した値を返します。
宣言
<< SWIFT >>
subscript (_ key: NSCopying) -> AnyObject? { get } << OBJECTIVE-C >> - (ObjectType)objectForKeyedSubscript:(KeyType)key
パラメータ
key | 対応する値を返すためのキー。 |
戻り値
aKey に関連した値、aKey に関連した値がない場合 >nil。
議論
このメソッドは、objectForKey: と同じように動作します。
利用可能
OS X v10.8 以降で利用可能。
以下も見よ
- objectsForKeys:notFoundMarker:
NSArray のように指定された keys に対応した辞書からのオブジェクトのセットを返します。
宣言
<< SWIFT >>
func objectsForKeys(_ keys: [AnyObject], notFoundMarker marker: AnyObject) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<ObjectType> *)objectsForKeys:(NSArray<KeyType> *)keys notFoundMarker:(ObjectType)anObject
パラメータ
keys | 対応する値を返すためのキーを含む NSArray。 |
anObject | 与られたキーに対応する辞書にオブジェクトが見つからない場合は、マーカーオブジェクトが返された配列の対応する要素内に配置されます。 |
議論
返される配列と keys 配列ないのオブジェクトは 1対1 で対応しており、返された配列内の n 番目のオブジェクトは、keys の n 番目のキーに対応しています。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- valueForKey:
与られたキーに関連した値を返します。
宣言
<< SWIFT >>
func valueForKey(_ key: String) -> AnyObject? << OBJECTIVE-C >> - (ObjectType)valueForKey:(NSString *)key
パラメータ
key | 対応する値を返すためのキー。キー値コーディングを使用するときに、キーは文字列でなければならないことに注意してください。(キー値コーディングの基礎 を参照のこと) |
戻り値
key に関連した値。
議論
key が"@"で始まらない場合、objectForKey: を呼び出します。key が"@"で始まる場合、"@"を削除し、キーの他の部分で、[super valueForKey:] を呼び出します。
利用可能
OS X v10.3 以降で利用可能。
以下も見よ
setValue:forKey: (NSMutableDictionary)
列挙型の辞書
- keyEnumerator:
宣言
辞書内の各キーにアクセスすることができるようにする列挙子オブジェクトを返します。
<< OBJECTIVE-C >>
- (NSEnumerator *)keyEnumerator
戻り値
辞書内の各キーにアクセスすることができるようにする列挙子オブジェクト。
議論
以下のコードは、このメソッドを使用する方法を示しています。
- NSEnumerator *enumerator = [myDictionary keyEnumerator];
- id key;
- while ((key = [enumerator nextObject])) {
-         /* code that uses the returned key */
- }
もし NSDictionary の可変のサブクラスのインスタンスで、このメソッドを使用するなら、コードは列挙中にエントリを決して変更しないでください。エントリを変更する場合は、辞書のキーの「スナップショット」を作成するために allKeys プロパティを使用して下さい。その後、道なりにそれらを変更しながら、エントリを注意深く見るために、このスナップショットを使用して下さい。
objectEnumerator メソッドは、辞書内の各値にアクセスするための便利な方法を提供していることに注意してください。
特別な考慮事項
高速列挙プロトコルを使用する方が(NSFastEnumeration を参照) 効率的です。高速列挙は、OS X v10.5 以降、および iOS 2.0 以降で利用可能です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
nextObject (NSEnumerator)
- objectEnumerator
辞書内の各値にアクセスすることができる列挙子オブジェクトを返します。
宣言
<< SWIFT >>
func objectEnumerator() -> NSEnumerator << OBJECTIVE-C >> - (NSEnumerator<ObjectType> *)objectEnumerator
戻り値
辞書内の各値にアクセスすることができる列挙子オブジェクト。
議論
以下のコードで、メソッドの使用方法を示します。
- NSEnumerator *enumerator = [myDictionary objectEnumerator];
- id value;
- while ((value = [enumerator nextObject])) {
-         /* code that acts on the dictionary’s values */
- }
NSDictionary の可変のサブクラスのインスタンスでこのメソッドを使用する場合、コードは列挙中にエントリを変更すべきではありません。エントリを変更しようとする場合は、辞書の値の"スナップショット" を作成するために allValues メソッドを使用して下さい。値を変更するには、このスナップショットから作業して下さい。
≈
特別な考慮事項
高速列挙プロトコルを使用する方が効率的です(NSFastEnumeration を参照のこと)。高速列挙は、OS X v10.5 以降か、iOS 2.0 以降で利用可能です。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
nextObject (NSEnumerator)
- enumerateKeysAndObjectsUsingBlock:
辞書のエントリに、与えられたブロックオブジェクトを適用します。
宣言
<< SWIFT >>
- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block
func enumerateKeysAndObjectsUsingBlock(_ block: (AnyObject, AnyObject, UnsafeMutablePointer<ObjCBool>) -> Void) << OBJECTIVE-C >> - (void)enumerateKeysAndObjectsUsingBlock:(void (^)(KeyType key, ObjectType obj, BOOL *stop))block
パラメータ
block | 辞書内のエントリを操作するためのブロックオブジェクト。 |
議論
ブロックが *stop を YES に設定した場合、列挙は停止します。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- enumerateKeysAndObjectsWithOptions:usingBlock:
- enumerateKeysAndObjectsWithOptions:usingBlock:
辞書のエントリに、与えられたブロックオブジェクトを適用します。
宣言
<< SWIFT >>
func enumerateKeysAndObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: (AnyObject, AnyObject, UnsafeMutablePointer<ObjCBool>) -> Void) << OBJECTIVE-C >> - (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void (^)(KeyType key, ObjectType obj, BOOL *stop))block
パラメータ
opts | 列挙のオプション。 |
block | 辞書内のエントリを操作するためのブロックオブジェクト。 |
議論
ブロックが *stop を YES に設定した場合、列挙は停止します。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- enumerateKeysAndObjectsUsingBlock:
辞書の並べ替え
- keysSortedByValueUsingSelector:
辞書が、その値でソートした場合の順序で、辞書のキーの配列を返します。
宣言
<< SWIFT >>
func keysSortedByValueUsingSelector(_ comparator: Selector) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<KeyType> *)keysSortedByValueUsingSelector:(SEL)comparator
パラメータ
comparator | 辞書内の値を比較するために使用するメソッドを指定するセレクタ。 辞書の値が引数より小さい場合、comparator メソッドは NSOrderedAscending を返し、辞書の値が引数よりも大きい場合は NSOrderedDescending を返し、もし両者が等しければ NSOrderedSame を返します。 |
戻り値
辞書が、その値でソートした時の順番で、辞書のキーの配列。
議論
辞書の値のペアは、comparator で指定された比較メソッドを使用して比較されます。comparator メッセージは、値のいずれか1つに送信され、辞書からの他の値を、その1つの引数として有しています。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
sortedArrayUsingSelector:(NSArray)
- keysSortedByValueUsingComparator:
辞書が与えられたコンパレータブロックを使用して、その値でソートした時の順序で、辞書のキーの配列を返します。
宣言
<< SWIFT >>
func keysSortedByValueUsingComparator(_ cmptr: NSComparator) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<KeyType> *)keysSortedByValueUsingComparator:(NSComparator)cmptr
パラメータ
cmptr | コンパレーターブロック。 |
戻り値
cmptr を使用して、辞書がその値でソートされた場合になる順序で、辞書のキーの配列。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- keysSortedByValueWithOptions:usingComparator:
- keysSortedByValueWithOptions:usingComparator:
与えられたコンパレータブロックとオプションの指定されたセットを使用して、その値で辞書をソートした場合の順序で、辞書のキーの配列を返します。
宣言
<< SWIFT >>
func keysSortedByValueWithOptions(_ opts: NSSortOptions, usingComparator cmptr: NSComparator) -> [AnyObject] << OBJECTIVE-C >> - (NSArray<KeyType> *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
パラメータ
opts | 並べ替え(sort)オプションのビットマスク。 |
cmptr | comparator のブロック。 |
戻り値
opts に与えられたオプションで cmptr を使用して、その値で辞書をソートした場合の順序で、辞書のキーの配列。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- keysSortedByValueUsingComparator:
辞書にフィルターをかける
- keysOfEntriesPassingTest:
ブロックオブジェクトによって記述される制約を満たす、対応する値のキーのセットを返します。
宣言
<< SWIFT >>
func keysOfEntriesPassingTest(_ predicate: (AnyObject, AnyObject, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Set<NSObject> << OBJECTIVE-C >> - (NSSet<KeyType> *)keysOfEntriesPassingTest:(BOOL (^)(KeyType key, ObjectType obj, BOOL *stop))predicate
パラメータ
predicate | 辞書内の値の制約を指定するブロックオブジェクト。 |
戻り値
predicate を満たす対応する値のキーのセット。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- enumerateKeysAndObjectsUsingBlock:
- keysOfEntriesWithOptions:passingTest:
ブロックオブジェクトによって記述される制約を満たす対応する値のキーのセットを返します。
宣言
<< SWIFT >>
func keysOfEntriesWithOptions(_ opts: NSEnumerationOptions, passingTest predicate: (AnyObject, AnyObject, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Set<NSObject> << OBJECTIVE-C >> - (NSSet<KeyType> *)keysOfEntriesWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(KeyType key, ObjectType obj, BOOL *stop))predicate
パラメータ
opts | 列挙オプションのビットマスク。 |
predicate | 辞書内の値の制約を指定するブロックオブジェクト。 |
戻り値
predicate を満たす対応する値のキーのセット。
利用可能
OS X v10.6 以降で利用可能。
以下も見よ
- enumerateKeysAndObjectsWithOptions:usingBlock:
辞書を保存する
- writeToFile:atomically:
与られたパスに辞書の内容のプロパティリスト表現を書き込みます。
宣言
func writeToFile(_ path: String, atomically useAuxiliaryFile: Bool) -> Bool << OBJECTIVE-C >> - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
パラメータ
path | ファイルを書き込むべきパス。 path がチルダ(~)文字を含んでいる場合は、このメソッドを呼び出す前に stringByExpandingTildeInPath でそれを展開する必要があります。 |
flag | ファイルを膨大に書き込むかどうかを指定するフラグ。 もし flag が YES であれば、辞書は補助ファイルに書き込まれ、その後、補助ファイルの名前は、path に変更されます。もし flag が NO であれば、辞書は、直接 path に書き込まれます。YES オプションは、それがまったく存在している場合、書き込み中にシステムがクラッシュした場合でも、破損している可能性はなく、その path を保証します。 |
戻り値
もしファイルが正常に書き込まれた場合は YES、そうでなければ NO。
議論
このメソッドは、すべての含まれているオブジェクトは、ファイルを書き出す前に、プロパティリストオブジェクト(NSData、NSDate、NSNumber、NSString、NSArray、または NSDictionary のインスタンス) であることを再帰的に検証し、すべてのオブジェクトがプロパティリストオブジェクトでない場合は、NO を返しますので、結果ファイルは、有効なプロパティリストではないでしょう。
もし辞書の内容が、すべてプロパティリストオブジェクトである場合、このメソッドで書き込まれたファイルは、クラスメソッド dictionaryWithContentsOfFile: またはインスタンスメソッド initWithContentsOfFile: で新しい辞書を初期化するために使用できます。
プロパティリストの詳細については、プロパティリストプログラミングガイド を参照してください。
利用可能
OS X v10.0 以降で利用可能。
- writeToURL:atomically:
与えられた URL に辞書の内容のプロパティリスト表現を書き込みます。
宣言
<< SWIFT >>
func writeToURL(_ url: NSURL, atomically atomically: Bool) -> Bool << OBJECTIVE-C >> - (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)flag
パラメータ
aURL | 辞書をどこへ書き込むべきかの URL。 |
flag | 出力を膨大に書き込むかどうかを指定するフラグ。 もし flag が YES の場合、辞書は補助の位置に書き込まれた後、補助位置の名前は aURL に変更されます。flag が NO の場合、辞書は aURL に直接書き込まれます。YES オプションは、それがすべて存在している場合、書き込み中にシステムがクラッシュした場合でも aURL は、破損している可能性がないことを保証します。aURL が膨大に書き込むことができないタイプである場合は、flag は無視されます。 |
戻り値
場所が正常に書き込まれた場合 YES、そうでなければ NO。
議論
このメソッドは、すべての含まれているオブジェクトは、ファイルを書き出す前に、プロパティリストオブジェクト(NSData、NSDate、NSNumber、NSString、NSArray、または NSDictionary のインスタンス)であることを再帰的に検証し、すべてのオブジェクトがプロパティリストオブジェクトでない場合は、NO を返しますので、結果の出力は、有効なプロパティリストではないでしょう。
もし辞書の内容が、すべてプロパティリストオブジェクトである場合、このメソッドで書き込まれた位置はクラスメソッド dictionaryWithContentsOfURL: またはインスタンスメソッド initWithContentsOfURL: で新しい辞書を初期化するために使用できます。
プロパティリストの詳細については、プロパティリストプログラミングガイド を参照してください。
利用可能
OS X v10.0 以降で利用可能。
ファイル属性へのアクセス
- fileCreationDate
NSFileCreationDate キーの値を返します。
宣言
<< SWIFT >>
func fileCreationDate() -> NSDate? << OBJECTIVE-C >> - (NSDate *)fileCreationDate
戻り値
NSFileCreationDate キーの値、または辞書がキーのエントリを持っていない場合、nil。
利用可能
OS X v10.2 以降で利用可能。
- fileExtensionHidden
NSFileExtensionHidden キーの値を返します。
宣言
<< SWIFT >>
func fileExtensionHidden() -> Bool << OBJECTIVE-C >> - (BOOL)fileExtensionHidden
戻り値
NSFileExtensionHidden キーの値、または辞書がキーのエントリを持っていない場合 NO。
利用可能
OS X v10.2 以降で利用可能。
- fileGroupOwnerAccountID
NSFileGroupOwnerAccountID キーの値を返します。
宣言
<< SWIFT >>
func fileGroupOwnerAccountID() -> NSNumber? << OBJECTIVE-C >> - (NSNumber *)fileGroupOwnerAccountID
戻り値
NSFileGroupOwnerAccountID キーの値、または辞書がキーのエントリを持っていない場合 nil。
利用可能
OS X v10.2 以降で利用可能。
- fileGroupOwnerAccountName
NSFileGroupOwnerAccountName キーの値を返します。
宣言
<< SWIFT >>
func fileGroupOwnerAccountName() -> String? << OBJECTIVE-C >> - (NSString *)fileGroupOwnerAccountName
戻り値
キー NSFileGroupOwnerAccountName の値、または辞書がキーのエントリを持っていない場合 nil。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager) や、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返されるようなものであり、ファイルまたはディレクトリの POSIX の属性を表しています。このメソッドは、対応するファイルのグループ名を返します。
利用可能
OS X v10.0 以降で利用可能。
- fileHFSCreatorCode
NSFileHFSCreatorCode キーの値を返します。
宣言
<< SWIFT >>
func fileHFSCreatorCode() -> OSType << OBJECTIVE-C >> - (OSType)fileHFSCreatorCode
戻り値
NSFileHFSCreatorCode キーの値、または辞書がキーのエントリを持っていない場合 0。
議論
OSType データ·タイプの詳細は、"HFS ファイルタイプ" を参照してください。
利用可能
OS X v10.1 以降で利用可能。
- fileHFSTypeCode
NSFileHFSTypeCode キーの値を返します。
宣言
<< SWIFT >>
func fileHFSTypeCode() -> OSType << OBJECTIVE-C >> - (OSType)fileHFSTypeCode
戻り値
NSFileHFSTypeCode キーの値、または辞書がキーのエントリを持っていない場合 0。
議論
OSType データ·タイプの詳細は、"HFS ファイルタイプ" を参照してください。
利用可能
OS X v10.1 以降で利用可能。
- fileIsAppendOnly
NSFileAppendOnly キーの値を返します。
宣言
<< SWIFT >>
func fileIsAppendOnly() -> Bool << OBJECTIVE-C >> - (BOOL)fileIsAppendOnly
戻り値
NSFileAppendOnly キーの値、または辞書がキーのエントリを持っていない場合 NO。
利用可能
OS X v10.2 以降で利用可能。
- fileIsImmutable
NSFileImmutable キーの値を返します。
宣言
<< SWIFT >>
func fileIsImmutable() -> Bool << OBJECTIVE-C >> - (BOOL)fileIsImmutable
戻り値
>NSFileImmutable キーの値、または辞書がキーのエントリを持っていない場合 NO。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返すもののように、ファイルまたはディレクトリの POSIX 属性を表します。
利用可能
OS X v10.2 以降で利用可能。
- fileModificationDate
キー NSFileModificationDate の値を返します。
宣言
<< SWIFT >>
func fileModificationDate() -> NSDate? << OBJECTIVE-C >> - (NSDate *)fileModificationDate
戻り値
キー NSFileModificationDate の値、または辞書がキーのエントリを持っていない場合は nil。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドからの戻り値と使用し、ファイルまたはディレクトリの POSIX 属性を表しています。このメソッドは、ファイルのデータが最後に変更された日付を返します。
利用可能
OS X v10.0 以降で利用可能。
- fileOwnerAccountID
NSFileOwnerAccountID キーの値を返します。
宣言
<< SWIFT >>
func fileOwnerAccountID() -> NSNumber? << OBJECTIVE-C >> - (NSNumber *)fileOwnerAccountID
戻り値
NSFileOwnerAccountID キーの値または、辞書がキーのエントリを持っていない場合 nil。
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドからの戻り値と使用し、ファイルまたはディレクトリの POSIX 属性を表しています。このメソッドは、ファイルの所有者のアカウント名を返します。
利用可能
OS X v10.2 以降で利用可能。
- fileOwnerAccountName
キー NSFileOwnerAccountName の値を返します。
宣言
<< SWIFT >>
func fileOwnerAccountName() -> String? << OBJECTIVE-C >> - (NSString *)fileOwnerAccountName
戻り値
キー NSFileOwnerAccountName の値、または辞書がキーのエントリを持っていない場合は nil。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返されたもののように、ファイルまたはディレクトリの POSIX 属性を表しています。このメソッドは、ファイルの所有者のアカウント名を返します。
利用可能
OS X v10.0 以降で利用可能。
- filePosixPermissions
キー NSFilePosixPermissions の値を返します。
宣言
<< SWIFT >>
func filePosixPermissions() -> Int << OBJECTIVE-C >> - (NSUInteger)filePosixPermissions
戻り値
unsigned long としての値、キー NSFilePosixPermissions の値、または辞書が、キーのエントリを持っていない場合 0。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返されたもののような、ファイルまたはディレクトリの POSIX 属性を表しています。このメソッドは、ファイルの権限を返します。
利用可能
OS X v10.0 以降で利用可能。
- fileSize
キー NSFileSize の値を返します。
宣言
<< SWIFT >>
func fileSize() -> UInt64 << OBJECTIVE-C >> - (unsigned long long)fileSize
戻り値
unsigned long long としての、キー NSFileSize の値、または辞書が、キーのエントリを持っていない場合 0。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドからの戻り値、ファイルまたはディレクトリの POSIX 属性を表しています。このメソッドは、ファイルのサイズを返します。
特別な考慮事項
ファイルがリソースフォークを持っている場合、戻り値はリソースフォークのサイズを含み ません。
利用可能
OS X v10.0 以降で利用可能。
fileSystemFileNumber
キー NSFileSystemFileNumber の値を返します。
宣言
<< SWIFT >>
func fileSystemFileNumber() -> Int << OBJECTIVE-C >> - (NSUInteger)fileSystemFileNumber
値は、unsigned long として、NSFileSystemFileNumber の値、または辞書が、キーのエントリを持っていない場合 0。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドからの戻り値、ファイルまたはディレクトリの POSIX 属性を表します。このメソッドは、ファイルの inode を返します。
利用可能
OS X v10.0 以降で利用可能。
- fileSystemNumber
キー NSFileSystemNumber の値を返します。
宣言
<< SWIFT >>
func fileSystemNumber() -> Int << OBJECTIVE-C >> - (NSInteger)fileSystemNumber
戻り値
値は、unsigned long として、キー NSFileSystemNumber の値、または辞書が、キーのエントリを持っていない場合 0。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返されたもののように、ファイルまたはディレクトリの POSIX 属性を表します。このメソッドは、ファイルを含むデバイスの ID を返します。
利用可能
OS X v10.0 以降で利用可能。
- fileType
キー NSFileType の値を返します。
宣言
<< SWIFT >>
func fileType() -> String? << OBJECTIVE-C >> - (NSString *)fileType
戻り値
キー NSFileType の値、または辞書がキーのエントリを持っていない場合は nil。
議論
これと他の file... で始まるメソッドは、辞書と共に使われ、fileAttributesAtPath:traverseLink:(NSFileManager)、directoryAttributes(NSDirectoryEnumerator)、および fileAttributes(NSDirectoryEnumerator) のようなメソッドから返されたもののような、ファイルまたはディレクトリの POSIX 属性を表します。このメソッドは、ファイルのタイプを返します。可能な戻り値は、NSFileManager の"定数" の項で説明します。
利用可能
OS X v10.0 以降で利用可能。
記述(Description)の作成
description プロパティ
プロパティリストとしてフォーマットされた、辞書の内容を表す文字列(読み取り専用)。
宣言
<< SWIFT >>
var description: String { get } << OBJECTIVE-C >> @property(readonly, copy) NSString *description
議論
辞書内の各キーが NSString のオブジェクトである場合、エントリはキーの昇順でリストされており、そうでない場合、その中にエントリがリストアップされている順序は定義されていなません。このプロパティは、データをシリアル化するためではなく、デバッグ目的で読み取り可能な出力を生成することを意図しています。後の検索のため辞書データを保存したい場合は、プロパティリストプログラミング·ガイド および アーカイブとシリアル化プログラミング·ガイドを参照してください。
利用可能
OS X v10.0 以降で利用可能。
descriptionInStringsFileFormat プロパティ
.strings のファイル形式でフォーマットされた、辞書の内容を表す文字列(読み取り専用)。
宣言
<< SWIFT >>
var descriptionInStringsFileFormat: String { get } << OBJECTIVE-C >> @property(readonly, copy) NSString *descriptionInStringsFileFormat
議論
エントリがリストされる順序は定義されていません。
利用可能
OS X v10.0 以降で利用可能。
- descriptionWithLocale:
プロパティリストとしてフォーマットされた、辞書の内容を表す文字列のオブジェクトを返します。
宣言
func descriptionWithLocale(_ locale: AnyObject?) -> String << OBJECTIVE-C >> - (NSString *)descriptionWithLocale:(id)locale
パラメータ
locale | 辞書のキー値のそれぞれのフォーマットに使用するオプションを指定するオブジェクト。それらをフォーマットしたくない場合は nil を渡します。 iOS とOS X v10.5 以降では、NSDictionary のインスタンスまたは NSLocale オブジェクトのいずれかが、locale のために使用されるかもしれません。OS X v10.4 以前では、それは NSDictionary のインスタンスでなければなりません。 |
議論
ロケールが辞書内の各要素に適用される方法の説明については、descriptionWithLocale:indent を参照してください。
辞書内の各キーが compare: に応答した場合、エントリは、キーの昇順でリストされ、そうでなければ、エントリがリストされる順序は定義されていません。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
- descriptionWithLocale:indent:
- descriptionWithLocale:indent:
プロパティリストとしてフォーマットされた、辞書の内容を表す文字列のオブジェクトを返します。
宣言
<< SWIFT >>
func descriptionWithLocale(_ locale: AnyObject?, indent level: Int) -> String << OBJECTIVE-C >> - (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level
パラメータ
locale | 辞書のキー値のそれぞれのフォーマットに使用するオプションを指定するオブジェクト。それらをフォーマットしたくない場合は nil を渡します。 iOS と OS X v10.5 以降では、NSDictionary のインスタンスまたは NSLocale オブジェクトのいずれかが、locale のために使用されます。OS X v10.4 以前では、それは NSDictionary のインスタンスでなければなりません。 |
level | 出力を読みやすくするためにインデントのレベルを指定します:インデントは(4つのスペース)* level です。 |
戻り値
プロパティリストとしてフォーマットされた、辞書の内容を表す文字列オブジェクト。
議論
返された NSString オブジェクトは、辞書の各エントリの文字列表現を含んでいます。 descriptionWithLocale:indent: は、次のように与えられたキーまたは値の文字列表現を取得します。
- オブジェクトが NSString オブジェクトの場合、それはそのまま使用されます。
- オブジェクトが descriptionWithLocale:indent: に応答する場合、そのメソッドは、オブジェクトの文字列表現を取得するために呼び出されます。
- オブジェクトが descriptionWithLocale: に応答する場合、そのメソッドは、オブジェクトの文字列表現を取得するために呼び出されます。
- 上記の条件のいずれも満たされていない場合、オブジェクトの文字列表現は、その descrition プロパティを通じて得られます。
辞書内の各キーが compare: に応答する場合、エントリはキーによって、昇順でリストされます。それ以外の場合は、エントリがリストされる順序は定義されていません。
利用可能
OS X v10.0 以降で利用可能。
以下も見よ
次の章