[oc學習日記]字典,oc學習日記字典
1 //字典的建立 2 NSDictionary *d1 = [NSDictionary dictionary]; 3 //將建立的字典的內容設定為制定的檔案的內容 4 NSString *path = @"";//檔案路徑 5 NSDictionary *d2 = [NSDictionary dictionaryWithContentsOfFile:path]; 6 //建立具有一個索引值的字典 7 NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s" forKey:@"s"]; 8 //建立具有多個索引值的字典 索引值對必需對應 9 //值在前 鍵在後10 NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",11 @"ss",@"1",12 nil];13 14 //利用數組建立字典15 NSArray *key = @[@"2",@"3",@"4"];16 NSArray *obj = @[@"ss",@"ff",@"gg"];17 NSDictionary *d5 = [NSDictionary dictionaryWithObjects:obj forKeys:key];18 //便捷方式19 //鍵在前 值在後20 NSDictionary *d6 = @{21 @"2":@"d",22 @"3":@"d"};23 24 //init初始化25 //將初始化的字典內容設定為指定檔案內容26 NSDictionary *dd = [[NSDictionary alloc]initWithContentsOfFile:path];27 //初始化具有多個鍵-值的字典(利用數組)28 NSDictionary *dd1 = [[NSDictionary alloc]initWithObjects:obj forKeys:key];29 //初始化具有多個鍵-值的字典30 NSDictionary *dd2 = [[NSDictionary alloc]initWithObjectsAndKeys:31 @"ss",@"2",32 @"ss",@"1", nil];33 34 35 36 //字典基本操作37 //字典是無序的 鍵不可以重複 值可以重複38 //返回所有鍵39 NSLog(@"%@",[dd2 allKeys]);40 //返回所有值41 NSLog(@"%@",[dd2 allValues]);42 //返回所有值對應的鍵43 NSLog(@"%@",[dd2 allKeysForObject:@"ss"]);44 //返回對應鍵的值 最常見 最重要45 NSLog(@"%@",[dd2 objectForKey:@"ss"]);46 //索引值對47 NSLog(@"%zi",dd2.count);48 49 50 //不可變字典51 //建立52 NSMutableDictionary *dic = [NSMutableDictionary dictionary];53 //分配空間54 NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10];55 //建立並賦值56 NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",57 @"ss",@"1", nil];58 //添加索引值對59 [dic2 setObject:@"s" forKey:@"sdads"];60 //刪除所有索引值對61 [dic2 removeAllObjects];62 //刪除指定鍵對應的索引值對63 [dic2 removeObjectForKey:@"sd"];64 65 66 //字典的遍曆67 //快速遍曆68 for (id key in dic2) {69 NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);70 }71 //代碼塊遍曆72 [dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {73 NSLog(@"%@ %@",key,obj);74 }];75 //迭代器遍曆76 //可以輸出鍵和值77 NSEnumerator *en = [dic2 keyEnumerator];//將所有鍵裝入數組78 id key2 = nil;79 while (key2 = [en nextObject]) {80 NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]);81 }82 NSEnumerator *en1 = [dic2 objectEnumerator];//將所有值裝入數組83 //只可以輸出值84 id obj3 = nil;85 while (obj3 = [en1 nextObject]) {86 NSLog(@"%@", obj);87 }88 89 90 //鍵給空值會異常 值給控制就是結束標誌
補充一點:
如果將自訂的類對象封裝進字典
可以用setValuesForKeysWithDictionary方法對對象屬性進行賦值,但是封裝進字典的鍵一定要和類中的屬性名稱相同,並且數量不能超過類中的屬性數量