Foundation框架中的其它常用细节

------期待与您交流! -------


一、NSSet和NSMutableset(无序的)

   1. NSSet(不可变)

    (1)创建

           1)NSSet *s=[NSSet set];        //空的set

           2)NSSet *s2=[NSSet SetWithObect:@"jack",@"rose",nil]; 

    (2) 随机拿出一个对象

            NSString *str=[s2 anyobject];

   2. NSMutableSet(子类)(可变)

    (1)创建

            NSMutableSet *s=[NSMutableSet set]

    (2)添加元素

            [s addobject:"@hake"]

    (3)删除元素

            [s removeAllobject]     //删除所有元素

            [s removeAllobject::"@hake"]        //删除指定元素

二、字典NSDictionary和NSMutableDictionary(无序的)

   1. NSDictionary(不可变)

    (1)创建

            NSDictionary*dict=[ NSDictionaryWithObject:@"jack"for key:@"name"];   //一对键值,根据name可以找到jack

    (2)字典就是通过key(索引)-----------》value(值)

    (3)字典存储的东西都是键值对

    (4)访问name对应的值:[dict objectForkey:@"name"];

    (5)NSArray*keys=@[@"name",@"address"];

            NSArray*objects=@[@"jack",@" 北京"];

            NSDictionary*dict=[ NSDictionary      DictionaryWithObject :objectsfor key:keys];//根据keys找objects

    (6)快速创建

            NSDictionary*dict=@{@"name":@"jack",@"address":" 北京"}; (常用)

            id obj=dict[@"name"];//拿出name对应的值

    (7)遍历

            NSDictionary*dict=@{@"name":@"jack",@@"address":" 北京"}; 

            1)for循环

                 NSString *keys=[dict allkeys];

                   for(int i=0;i<dict.count;i++)

                 {

                    NSString *key=keys[i];

                    NSString *object=dict[key];

                    NSLog(@"%@=%@",key,object);

                 }

            2)block方法

                 [dict enumeratekeysAndobjectsUsingBlock:

                  ^(id key,id obj,BOOL*stop){NSLog(@"%@=%@",key,object);}]

    2. NSMutableDictionary(可变的)

     (1)创建

             NSMutableDictionary*dict=[ NSMutableDictionary   dictionary];  //空字典

     (2)添加键值对

             [dict setobject:@"jack" for key :@"name"];

             [dict setobject:@"rose" for key :@"name"];  //会将"jack"覆盖

     (3)删除键值对

             [dict removeobjectForkey:(id)]

     (4)NSMutableDictionary不能使用快速创建

三、NSNumber和NSvalue

   1. 把基本数据类型包装成OC 对象:NSNumber*num=[NSNumber  numberWithInt:10]

   2. NSDictionary*dict=@{@"name":@"jack",@"age":" num"}; 

      NSNumber*num2=dict[@"age"];

      //取出的age还是OC对象

   3. int a=[num2 intvalue];//将num2(OC对象)转为基本数据类型

   4. @20   //将基本数据类型快速转化成OC对象(@"20")

   5. @"A":NSString对象

      @'A'  将字符包装成一个NSNumber对象

   6. int age=100

      @(age)//将age包装成NSNumber对象

   7. 将结构体包装成OC 对象

      CGPoint =CGPointMake(10,10);//  结构体

      NSvalue value=[NSvalue valueWithPoint :p]//把结构体转为OC 对象

   8. NSArray *array=@[value];//把对象放进数组

   9. [value pointValue];//把value转为对应的结构体

  10. NSnumber之所以能将基本数据类型包装成OC对象,是因为它继承了NSvalue

四、NSDate

   1. 创建一个时间对象

       NSDate *date=[NSDate date];

       NSLog(@"%@",date);//打印出的时间是0时区的时间

   2. NSDate *date=[NSDate dateWithTimeInterval:5 sinceDate:date];//date2比date晚5秒

   3. NSTimeIntelval seconds={date timeInterval since 1970};// 从1970开始走过的秒数

   4. 日期格式化类(date转string)

    (1)NSDate date=[NSDate date];

            NSDateFormatter *formatter=[[NSDateFormatter alloc]init]

            formatter.dateFormat=@"yyyy-MM-dd   HH:mm:ss";

            NSString *str=[formatter   stringFormDate:date];

            NSLog(@"%@"str);//y年M月d日 m分s秒H(24小时制)h(12小时制)

    (2)NSString转NSDate

            NSString *time=@"2011/09/10 18:56";

            NSDateFormatter *formatter=@"yyyy-MM-dd   HH:mm:ss";

            NSDate date=[formatter dateFromString:time];

            NSLog(@"%@",date);




   





 







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值