NSDictionary
介绍
- 字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。
- 不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
初始化
NSDictionary * dic = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"key1",
@"value2", @"key2",
nil];
NSDictionary *dic = [NSDictionary dictionaryWithDictionary: otherDic];
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile: path];
截取和处理
NSInteger count = [dic count];
NSArray *arr = [dic allValues];
NSArray *arr = [dic allKeys];
NSMutableDictionary
初始化
NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"v1",@"key1", @"v2",@"key2", nil];
[dic1 setDictionary: dic2];
截取和处理
NSInteger count = [mDic count];
NSArray *arr = [mDic allValues];
NSArray *arr = [mDic allKeys];
[mDic setObject:string4 forKey:@"media"];
[mDic setValue: @"value" forKey: @"key"];
[mDic addEntriesFromDictionary: dic1];
[mDic removeAllObjects];
[mDic removeObjectForKey: @"key"];
判断
BOOL isOK = [dic1 isEqualToDictionary: dic2];
BOOL isOK = [dict objectForKey:@"key"];
if(![[dict objectForKey:@"key"] isEqual:[NSNull null]]){
}
遍历
for (NSString *key in dict) {
NSLog(@"key: %@ value: %@", key, dict[key]);
}
NSArray *keys = [dic allKeys];
for (int i=0; i<key.count;i++){
id key = [keys objectAtIndex:i];
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
}
NSEnumerator *enumerator = [dic keyEnumerator];
while ((id key = [enumerator nextObject])) {
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
}