#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
typedef struct {
int year;
int month;
int day;
} Date;
Date d = {, , };
// 将结构体d包装成NSValue对象
NSValue *dValue = [NSValue valueWithBytes:&d objCType:@encode(Date)];
NSArray *array = @[dValue];
// 取出value之前包装的结构体数据
Date newD;
[dValue getValue:&newD];
}
return ;
}
void useValue()
{
CGPoint p1 = CGPointMake(, );
CGPoint p2 = CGPointMake(, );
NSArray *array = @[
[NSValue valueWithPoint:p1],
[NSValue valueWithPoint:p2]];
// NSValue *v2 = [array lastObject];
// v2.pointValue
}
void useNumber()
{
// 基本数据类型
int age = ;
double height = ;
BOOL rich = YES;
// 将基本数据类型包装成NSNumber对象
// NSNumber *ageNum = [NSNumber numberWithInt:age];
// NSNumber *heightNum = [NSNumber numberWithDouble:height];
// NSNumber *richNum = [NSNumber numberWithBool:rich];
// NSArray *array = @[ageNum, heightNum, richNum];
NSArray *array = @[ @(age), @(height), @(rich), @(), @];
NSNumber *richNum = [array lastObject];
// 取出之前的包装的数值
NSLog(@"%d", richNum.boolValue);
}