NSDictionary的功能和用法
NSDictionary集合由多组key-value组成,因此创建NSDictionary时需要同时指定多组key-value对。 NSDICTIONARY分别提供了类方法和实例方法创建NSDictionary。
- dictionary:创建一个不包含任何key-value对的NSDictionary。
- dictionaryWithContentsOfFile:/initWithContentsOfFile:读取指定文件的内容,使用指定文件内容来初始化NSDictionary。
- dictionaryWithObject:forKey:使用单个key-value来创建NSDictionary对象
- dictionaryWithObjects:forKeys:/initWithObjects:forKeys:使用两个NSArray分别指定Key,vakue集合,可以创建包含多组key-value对的NSDictionary。
- dictionaryWithObjectsAndKeys:调用该方法时,需要按value1, key1, value2, key2, …nil的方式传入多个key-value对。
一旦得到NSDictionary对象,接下来就可以通过方法访问该集合所包含的 key或value。
- count: 该方法返回NSDictionary所包含的key-value对的数量。
- allKeys: 该方法返回该NSDictionary所包含的全部Key。
- allKeyForObject: 该方法返回指定value对应的全部Key。
- allValue: 该方法返回该NSDictionary所包含的全部value。
- objectForKey: 该方法获取该NSDictionary中指定Key对应的value。
- objectForKeyedSubScript: 通过该方法的支持,允许NSDictionary通过下标来获取指定key对应的value。
- valueForKey: 该方法获取该NSDictionary中指定Key对应的value。
- keyEnumerator: 该方法返回用于遍历该NSDicyoinary所有Key的NSEnumerator对象。
- enumerateKeysAndObjectsUsingBlock: 使用指定的代码块来迭代执行该集合中所有的key-value对。
- enumerateKeysAndObjectsWithOptions:usingBlock: 使用指定的代码块来迭代执行该集合中所有的key-value对。该方法可以传入一个NSEnumerationOptions参数。
- writeToFile: 将NSDictionary对象的数据写入指定文件。
下面为NSDictionary扩展一个print类别。
#import <Foundation/Foundation.h>
@interface NSDictionary (print)
- (void) print;
@end
@implementation NSDictionary (print)
- (void) print {
NSMutableString* result = [NSMutableString stringWithString:@"{"];
for (id key in self) {
[result appendString:[key description]];
[result appendString:@"="];
[result appendString:[self[key] d