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

时间:2023-03-08 23:53:51
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;
}