数组的存储是连续的,而字典则是不一定连续的,NSDictionary是不能进行增、删、改的;字典是以键值对的形式存在,这里学习下字典的应用
//
// NSDictionaryDemo.m
// OCDemo1
//
// Created by dcr on 2016/12/8.
// Copyright © 2016年. All rights reserved.
//
#import "NSDictionaryDemo.h"
@implementation NSDictionaryDemo
- (void)printNSDictionary{
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"1" forKey:@"a"];
NSLog(@"dic = %@", dic);
//常见的创建方式
NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil] forKeys:[NSArray arrayWithObjects:@"a", @"b", @"c", @"d", nil]];
NSLog(@"dic2 = %@", dic2);
NSDictionary *dic3 = @{@"a":@"1", @"b":@"2", @"c":@"3"};
NSLog(@"dic3 = %@", dic3);
NSLog(@"dic3 count = %d", (int)[dic3 count]);
NSLog(@"dic3 valueForKey = %@", [dic3 valueForKey:@"b"]);
NSLog(@"dic3 objectForKey = %@", [dic3 objectForKey:@"b"]);
NSArray *allValues = [dic3 allValues];
for(NSString *str in allValues){
NSLog(@"str = %@", str);
}
NSLog(@"dic3 allKeys = %@", [dic3 allKeys]);
NSArray *str1 = [dic3 objectsForKeys:[NSArray arrayWithObjects:@"a", @"b", @"g", nil] notFoundMarker:@"none"];
NSLog(@"str1 = %@", str1);
//遍历字典
for(NSString *key in dic3){
NSLog(@"key = %@, value = %@", key, [dic3 objectForKey:key]);
}
//枚举器
NSEnumerator *en = [dic3 keyEnumerator];
id key = nil;
while (key = [en nextObject]) {
NSLog(@"key = %@, value = %@", key, [dic3 objectForKey:key]);
}
}
- (void)printNSMutableNSDictionary{
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
//添加
[dic setObject:@"value" forKey:@"key"];
[dic setObject:@"2" forKey:@"a"];
[dic setObject:@"3" forKey:@"b"];
//删除
//[dic removeAllObjects];
//[dic removeObjectForKey:@"a"];
[dic removeObjectsForKeys:[NSArray arrayWithObjects:@"a", @"b", nil]];
NSLog(@"dic = %@", dic);
}
@end