Objective-C NSDictionary 和 NSMutableDictionary( NSArray 类)

创建Teacher类

Teacher.h代码:

#import <Foundation/Foundation.h>

@interface Teacher : NSObject
//设置两个属性
@property(retain,nonatomic)NSString* name;//姓名
@property(assign,nonatomic)int number;//员工编号
@end


Teacher.m代码


#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;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值