NSValue
是NSNumber的父類
結(jié)構(gòu)體 指針 復(fù)合類型 使用NSValue來封裝 int a[10]也可以來封裝
封裝 上面的結(jié)構(gòu)體
NSValue * value = [NSValue valueWithPoint:p];
NSValue *value1 = [NSValue valueWithSize:s];
NSValue *value2 = [NSValue valueWithRect:r];
NSValue * range1 = [NSValue valueWithRange:range];
//取值
CGPoint p1 = [value pointValue];
CGSize s1 = [value1 sizeValue];
CGRect r1 = [value rectValue];
NSRange rang2 = [range1 rangeValue];
//自定義了一個(gè)結(jié)構(gòu)體
struct Student
{
int age;
};
struct Student a ={10};
//把自定義的 結(jié)構(gòu)體封裝
//第一個(gè)參數(shù) 是放要封裝的這個(gè)東西的地址
//第二個(gè)放的是 封裝時(shí)候編碼的類型
NSValue * valueM = [[NSValue alloc]initWithBytes:&a objCType:@encode(struct Student)];
//取出來
struct Student newStudent;
[valueM getValue:&newStudent];
//自定義C數(shù)組
int b[10] = {1,2,3,4,5,6,7,8,9,10};
NSValue * valueB = [[NSValue alloc]initWithBytes:b objCType:@encode(int[10])];
int c[20];
[valueB getValue:c];
CGPoint p = CGPointMake(20, 20);
CGSize s = CGSizeMake(30, 30);
CGRect r = CGRectMake(200, 200, 200, 200);
NSRange range = NSMakeRange(10, 20);
//放到數(shù)組去
NSValue * value = [NSValue valueWithPoint:p];
NSValue *value1 = [NSValue valueWithSize:s];
NSValue *value2 = [NSValue valueWithRect:r];
NSValue * range1 = [NSValue valueWithRange:range];
//NSArray *arr = @[value];
//取值
CGPoint p1 = [value pointValue];
CGSize s1 = [value1 sizeValue];
CGRect r1 = [value rectValue];
NSRange rang2 = [range1 rangeValue];
//自定義了一個(gè)結(jié)構(gòu)體
struct Student
{
int age;
};
struct Student a ={10};
//把自定義的 結(jié)構(gòu)體封裝
//第一個(gè)參數(shù) 是放要封裝的這個(gè)東西的地址
//第二個(gè)放的是 封裝時(shí)候編碼的類型
NSValue * valueM = [[NSValue alloc]initWithBytes:&a objCType:@encode(struct Student)];
//取出來
struct Student newStudent;
[valueM getValue:&newStudent];
//自定義C數(shù)組
int b[10] = {1,2,3,4,5,6,7,8,9,10};
NSValue * valueB = [[NSValue alloc]initWithBytes:b objCType:@encode(int[10])];
int c[20];
[valueB getValue:c];