文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Objective-C中NSNumber与NSDictionary的用法简介

2022-05-17 15:40

关注

NSNumber的常用方法

在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber?这是因为很多类(如NSArray)都要求使用对象,而int不是对象。 NSNumber就是数字对象我们可以使用NSNumber对象来创建和初始化不同类型的数字对象。 NSNumber    + (NSNumber *)numberWithInt:(int)value;    + (NSNumber *)numberWithDouble:(double)value;    - (int)intValue;    - (double)doubleValue;    .....................(对于每个基本类型,类方法都为这它分配了一个NSNumber对象,并将其设置为指定的值,这些方法都是以numberWith开始的,之后是类型,如numberWithFloat,numberWithLong,numberWithInteger.....) 包装后取出来的方法如下: 下面就拿int做个demo:

void number() {      // 将int类型的10 包装成 一个NSNumber对象      NSNumber *number = [NSNumber numberWithInt:10];      NSLog(@"number=%@", number);            NSMutableArray *array = [NSMutableArray array];      // 添加数值到数组中      [array addObject:number];            // 取出来还是一个NSNumber对象,不支持自动解包(也就是不会自动转化为int类型)      NSNumber *number1 = [array lastObject];            // 将NSNumber转化成int类型      int num = [number1 intValue];      NSLog(@"num=%i", num);  } 

NSDictionary一些常用用法

NSArray * skyAArrays = [NSArray arrayWithObjects:@"A天空1号",@"A天空2号",@"A天空3号",nil];     NSArray * skyBArrays = [NSArray arrayWithObjects:@"B天空1号",@"B天空2号",@"B天空3号",nil];     NSArray * skyCArrays = [NSArray arrayWithObjects:@"C天空1号",@"C天空2号",@"C天空3号",nil];         // NSArray * skyArray = [NSArray arrayWithObjects:skyAArrays,skyBArrays,skyCArrays, nil];        //字典中所有的key     NSArray * keys = [NSArray arrayWithObjects:@"name",@"sex",@"age",nil];    //字典中所有跟key对应的value     NSArray * values = [NSArray arrayWithObjects:@"liuhui",@"男",[NSNumbernumberWithInt:36],nil];    //创建字典对象方法1     NSDictionary * myDic = [[NSDictionary alloc]initWithObjects:values forKeys:keys];     NSLog(@"my dic = %@",myDic);    // 创建字典对象方法2         NSDictionary * yourDic = [[NSDictionary alloc] initWithObjectsAndKeys:skyAArrays,@"A",skyBArrays,@"B",skyCArrays,@"C",nil];     NSLog(@"your dic = %@",yourDic);          NSLog(@"%@",[yourDic objectForKey:@"A"]);     // - (NSArray *)allKeys; 返回的是 NSArray类型,方便用 objectAtIndex取出一个个key     NSLog(@"%@",[yourDic allKeys]);     NSLog(@"%@",[yourDic allValues]);        //添加数据(setObject 一般没有一种key才添加,有同名的key而用这种方法,会覆盖掉),注意:id key  是成对出现的      [mutableDictionary setObject:@"good lucky"forKey:@"why"];      [mutableDictionary setObject:@"bye bye" forKey:@"how"]; 

   //删除指定键值的数据      [mutableDictionary removeObjectForKey:..];     //删除所有数据      [mutableDictionary removeAllObjects]; 

    //字典的普通遍历(无序)     for (int i =0; i < [yourDic count]; i++) {             NSLog(@"key = value <====> %@ = %@",[[yourDic allKeys] objectAtIndex:i],[yourDic objectForKey:[[yourDic allKeys]objectAtIndex:i]]);     }         // 字典的快速遍历 取出来的obj一定是key     for (id obj in yourDic) {            NSLog(@"%@",obj);         id value = [yourDic objectForKey:obj];           NSLog(@"%@",value);     }

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯