第八天-常用的结构体

//
//  main.m
//  05-常用的结构体
//
//  Created by Apple on 14/12/5.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
//      1、NSRange 区间
        
        NSRange range;
//        range.location  表示开始的位置
//        range.length 表示长度
//      2、NSPoint/CGPoint 位置
//        NSPoint
        CGPoint point;
//        point.x x坐标
//        point.y y坐标
        point = CGPointMake(10, 10);
        
        NSLog(@"%@",NSStringFromPoint(point));
        
        
//      3、NSSize/CGSize 尺寸/大小
        CGSize size;
//        size.width  宽度
//        size.height  高度
        size = CGSizeMake(20, 30);
        NSLog(@"%@",NSStringFromSize(size));
        
//      4、NSRect/CGRect 位置和大小
        CGRect rect;
//        rect.origin  位置
//        rect.size    大小
        rect  = CGRectMake(10, 10, 20, 30);
        NSLog(@"%@",NSStringFromRect(rect));
    }
    return 0;
}



//
//  main.m
//  06-基本数据类型的包装类NSNumber
//
//  Created by Apple on 14/12/5.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
/*
   OC中集合类中只能存储OC对象不能存储基本数据类型
  
   存储基本数据类型
   基本数据类型 -》包装类型(NSNumber) ->存入集合类
 
   从集合中取出包装类型 -》包装类型(NSNumber) -》基本数据类型

 */
int main(int argc, const char * argv[]) {
    @autoreleasepool {
//      基本数据类型转包装类型
        NSNumber *number = [NSNumber numberWithInt:19];
        number = [NSNumber numberWithFloat:10.1f];
        number = [NSNumber numberWithDouble:10.10];
        number = [NSNumber numberWithBool:YES];
//      包装类型转基本数据类型
       int i =  number.intValue;
        number.floatValue;
        number.doubleValue;
        number.boolValue;
//      快速创建NSNumber对象
        number = @1;
        number = @1.1;
        number = @1.2f;
        
        
        
    }
    return 0;
}


//
//  main.m
//  07-结构体转包装类型NSValue
//
//  Created by Apple on 14/12/5.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
/*
 OC中集合类中只能存储OC对象不能存储基本数据类型和结构体
 
 存储结构体
 结构体 -》包装类型(NSValue) ->存入集合类
 
 从集合中取出包装类型 -》包装类型(NSValue) -》结构体
 
 */
int main(int argc, const char * argv[]) {
    @autoreleasepool {
//      结构体转包装类型
        NSRange range = {1,20};
        NSValue *value = [NSValue valueWithRange:range];
        CGPoint point =  CGPointMake(1.2,10.2);
        NSValue *value2 = [NSValue valueWithPoint:point];
        CGSize size  = CGSizeMake(10, 20);
        NSValue *value3 = [NSValue valueWithSize:size];
        CGRect rect = CGRectMake(10, 10, 20, 20);
        NSValue *value4 = [NSValue valueWithRect:rect];
//      自定义的结构体转NSValue
        typedef struct {
            int year;
            int month;
            int day;
        } CZDate;
        
        CZDate date = {2014,12,5};
        
        NSValue *value5 = [NSValue valueWithBytes:&date objCType:@encode(CZDate)];
        NSLog(@"%@",value5);
//      包装类型转结构体
        CZDate d1;
        
        
        [value5 getValue:&d1];
        NSLog(@"%d,%d,%d",d1.year,d1.month,d1.day);
        
        value4.rectValue;
        value3.sizeValue;
        value2.pointerValue;
        value.rangeValue;
        
    }
    return 0;
}


你可能感兴趣的:(第八天-常用的结构体)