OC数据类型 enum NSRange NSPoint NSSize NSRect NSDate N

    

//------------------------------------------------

    //可变的字典 NSMutableDictionary

    //第一种定义方式 返回一个空的字典

    NSMutableDictionary *mutableDict1 = [NSMutableDictionary dictionary];

    //第二种定义方式 返回一个空的字典 并且创建一个初始的存储空间

    NSMutableDictionary *mutableDict2= [[NSMutableDictionary alloc]initWithCapacity:10];

    //第三种定义方式 返回一个字典 里面包含里了一个已创建过的不可变的字典集合

   

    //返回数组集合里面包含字典里的所有的Key数据

    NSArray *array1 = [mutableDict2 allKeys];

    //利用Key数组的有序性,返回字典里的Value

    for( int i = 0 ; i < [mutableDict2 count]; i++ ){

        NSLog(@"key: %@, value: %@",array[i], mutableDict2[array1[i]]);

    }


    //---------------枚举-----------------

    

    //swift 语言中的三大语言类型 enum struct class

    

    //定义

    //c的枚举

    enum name {

        age = 10,

        score = 90

    };

    //typedef 定义类型的别名 再枚举不允许重复定义

    typedef enum

    {

       scoreI = 80

    }name1;

    

    //OC的枚举 常用枚举:是一个抽象类,它能枚举的形式把例如数组和字典等集合列举出来

    //例如列举字典 一般只能列举出来字典的键

    NSDictionary *dictIII = @{@"1-1":@"name",@"1-2":@"age",@"1-3":@"score"};

    //返回的是一个集合里的枚举数据

    NSEnumerator *enumerator = [dictIII  objectEnumerator];

    

    id dictI ;

    //返回集合的下一个对象 列举

    while (dictI = [enumerator nextObject]) {

        

        NSLog(@"%@",dictI);

    }

    

    //-----------结构体-------------

    //C的结构体

    //申明一个结构体,设置结构体里的属性

    //注意:结构体不能在初始赋值

    struct structI{

        //NSString *name;

    };

    

    //注意:在OCARC(自动引用计数)的情况下,不能设置结构体属性

    //struct structI structII= { .name = @"jack" };

    //NSLog(@"structII name: %@", structII.name );

    

    //OC的常用结构体:NSRange NSRect NSPoint NSSize

    //结构体一般不需要指针表示

    

    //1.NSRange: 一般用于描述一个范围,通常用于字符串、对象查找

    //location: 起始位置 length: 长度

    NSString *string = @"1234567890";

    NSRange rangeII = NSMakeRange( 8, 2 );

    

    //通过字符串返回范围

    NSRange rangeI = [ string rangeOfString:@"90"];

    

    //通过范围返回字符串

    NSLog(@"%@", [string substringWithRange:rangeII]);

    NSLog(@"location: %li, length: %li", rangeI.location, rangeI.length );

    

    //2.NSPoint 用于描述一个坐标 x,y

    NSPoint pointI = NSMakePoint( 3.4, 1.2 );

    CGPoint pointII = NSMakePoint( 3.5, 1.3 );

    NSLog(@"x:%.2f, y: %.2f", pointI.x, pointI.y );

    NSLog(@"x:%.2f, y: %.2f", pointII.x, pointII.y );

    

    //3.NSSize 用于描述一个宽高,width,height

    NSSize sizeI = NSMakeSize( 300 , 120 );

    CGSize sizeII = NSMakeSize( 300.1 , 120.1 );

    NSLog(@"width : %.2f , height: %.2f", sizeI.width, sizeI.height);

    NSLog(@"width : %.2f , height: %.2f", sizeII.width, sizeII.height);

    

    //4.NSRect 用户描述一个坐标以及宽高

    NSRect rectI = NSMakeRect( 1, 2.1, 100, 200.1);

    NSLog(@"x: %.2f , y: %.2f , width: %.2f , height: %.2f",

          rectI.origin.x, rectI.origin.y, rectI.size.width, rectI.size.height);


    

    //-----------NSDate------------

    //拿到时间

    NSDate *date = [[NSDate alloc]init];

    

    有时区差

    //需要格式化

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

    

    //设置要格式成什么时间格式

    //HH是二十四小时制,hh是十二小时制

    [dateFormatter setDateFormat:@"yyyyMMdd HHmmss"];

    NSLog(@"%@",[dateFormatter stringFromDate:date]);

    

    //把字符串转换成NSNDate dateFromString

    //注意:字符串的格式要和时间格式一样


    //---------- NSvalue----------

    //定义一个NSValue

    NSValue *value = [[NSValue alloc]init];

    

    //作用:结构体不能直接存放到一个数组中,要先转换成NSValue类型,然后再放入到数组中

    

    //常见结构体:NSRange NSPoint NSSize NSRect

    //rect转换成NSValue

    NSValue *valueI = [NSValue valueWithRect:rect];

    //转换后存入数组

    NSArray *array = @[valueI];

    NSLog(@"%@",array);

    


转载于:https://my.oschina.net/u/2483162/blog/517743

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值