创建Teacher类
Teacher.h代码:
#import <Foundation/Foundation.h>
@interface Teacher : NSObject
//设置两个属性
@property(retain,nonatomic)NSString* name;//姓名
@property(assign,nonatomic)int number;//员工编号
@end
#import "Teacher.h"
@implementation Teacher
@synthesize name=_name;
@synthesize number=_number;
//重写description
-(NSString*)description
{
if (_name==nil||_number==0) {
return @"没有找到";
}
else
{
return [NSString stringWithFormat:@"name:%@,number:%d",_name,_number];
}
}
//重写dealloc
-(void)dealloc
{
[_name release];
[super dealloc];
}
@end
main.m代码:
#import <Foundation/Foundation.h>
#import "Teacher.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
/*** NSDictionary 一下介绍一般的 ****/
//1.创建 NSDictionary 并初始化
NSDictionary *Dic=[NSDictionary dictionaryWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];
NSLog(@"%@",Dic);
//输出 说明 1,2,3为 key 值。
/*
{
1 = one;
2 = two;
3 = three;
}
*/
//2.key值和 value值分开的 NSDictionary
NSArray *keyArray=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
NSArray *valueArray=[NSArray arrayWithObjects:@"one",@"two",@"three", nil];
NSDictionary *Dic2=[NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray];
NSLog(@"%@",Dic2);
//输出
/*
{
1 = one;
2 = two;
3 = three;
}
*/
//3.元素个数
NSLog(@"count:%li",[Dic2 count]);//count:4
//4.判断两个 NSDictionary 元素是否相同(key值也要相同) isEqualToDictionary返回BOOL
if ([Dic isEqualToDictionary:Dic2]) {
NSLog(@"这两 NSDictionary 相同");
}
else
{
NSLog(@"这两 NSDictionary 不相同");
}
//5.获取所有 key 值,value 值
NSArray *myArrayKey=[Dic2 allKeys];
NSLog(@"%@",myArrayKey);
NSArray *myArrayValue=[Dic2 allValues];
NSLog(@"%@",myArrayValue);
//获取object相同的key值
NSArray* myArray=[Dic2 allKeysForObject:@"one"];
NSLog(@"%@",myArray);
/********以下 以value 为Teacher类 介绍 NSDictionary**********/
//创建 Teacher 对象
Teacher *Teach1=[[Teacher alloc] init];
Teacher *Teach2=[[Teacher alloc] init];
Teacher *Teach3=[[Teacher alloc] init];
Teach1.name=@"zhang ming";
Teach1.number=9671001;
Teach2.name=@"li bin";
Teach2.number=9671002;
//1.创建字典 并初始化
NSDictionary *myDic1=[NSDictionary dictionaryWithObjectsAndKeys:
Teach1,@"No.1",
Teach2,@"No.2",
Teach3,@"No.3",
nil];
//2.直接输出
NSLog(@"%@",myDic1);
//输出
/*
{
"No.1" = "name:zhang ming,number:9671001";
"No.2" = "name:li bin,number:9671002";
"No.3" = "\U6ca1\U6709\U627e\U5230";
}
*/
//遍历
for(id obj in myDic1)
{
NSLog(@"key :%@ value :%@",obj ,[myDic1 objectForKey:obj]);
}
//输出
/*
key :No.1 value :name:zhang ming,number:9671001
key :No.3 value :没有找到
key :No.2 value :name:li bin,number:9671002
*/
//3.通过 key 获取 object
Teacher *Teach4=[myDic1 objectForKey:@"No.1"];
NSLog(@"%@",Teach4); //输出 name:zhang ming,number:9671001
//4.创建可变字典 NSMutableDictionary 是 NSDictionary 的子类
NSMutableDictionary *myMuDic=[NSMutableDictionary dictionaryWithCapacity:20];//设定容量
//两种方法 从 myDic1 ——> myMuDic
[myMuDic setDictionary:myDic1];
//[myMuDic setValuesForKeysWithDictionary:myDic1];
NSLog(@"%@",myMuDic);
//输出
/*
{
"No.1" = "name:zhang ming,number:9671001";
"No.2" = "name:li bin,number:9671002";
"No.3" = "\U6ca1\U6709\U627e\U5230";
}
*/
//5.删除元素 通过 key
[myMuDic removeObjectForKey:@"No.3"];
NSLog(@"%@",myMuDic);
//输出
/*
{
"No.1" = "name:zhang ming,number:9671001";
"No.2" = "name:li bin,number:9671002";
}
*/
//6.添加
[myMuDic setObject:Teach4 forKey:@"No.4"];
NSLog(@"%@",myMuDic);
//7.通过数组 NSArray 删除指定的 key 值对象
NSArray *Arr=[NSArray arrayWithObjects:@"No.1",@"No.4", nil];
[myMuDic removeObjectsForKeys:Arr];
NSLog(@"%@",myMuDic);
}
return 0;
}