Object-c学习之路十(NSNumber&NSValue)

Object-c学习之路十(NSNumber&NSValue)Object-c学习之路十(NSNumber&NSValue)Object-c学习之路十(NSNumber&NSValue)


 

//

//  main.m

//  NSNumberAndNSValue

//

//  Created by WildCat on 13-7-26.

//  Copyright (c) 2013年 wildcat. All rights reserved.

//



#import <Foundation/Foundation.h>

#pragma mark 对基本数据类型进行包装

void  number(){

    NSNumber *number=[NSNumber numberWithInt:6];

    NSLog(@"%@",number);

    NSArray *array=[NSArray arrayWithObjects:number, nil];

    NSNumber *number2=[array objectAtIndex:0];

    int a=[number2 intValue];

    NSLog(@"%i",a);

}

#pragma mark 对结构体等类型进行包装

void value(){

    //创建一个Point结构体

    CGPoint point=CGPointMake(10, 12);

    //包装

    NSValue *value1=[NSValue valueWithPoint:point];

    //创建一个数组

    NSMutableArray *array=[NSMutableArray array];

    //添加元素

    [array addObject:value1];

}

#pragma mark - 对自定义结构体进行包装



#pragma mark 定义一个结构体

typedef struct{

    int year;

    int month;

    int day;

} Date;



void valueUser(){

    Date date1={2013,7,26};

    //包装   value:要传一个指针 withObjCType:要传一个类型包装后的字符串 (即:char *type=@encode(Date))

    char * type=@encode(Date);

    NSValue *dvalue=[NSValue value:&date1 withObjCType:type];

    //取出

    Date newDate;

    [dvalue getValue:&newDate];

    NSLog(@"year:%i,month:%i,day:%i",newDate.year,newDate.month,newDate.day);





}



int main(int argc, const char * argv[])

{



    @autoreleasepool {

        

        number();

        valueUser();

    }

    return 0;

}


 





 

你可能感兴趣的:(object)