struct student{
char name[20];
char gender;
};
typedef struct student Student;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSValue 数值类,将指针,结构体等转换成对象
int a = 10;
int *p = &a;
NSMutableArray *array = [NSMutableArray arrayWithCapacity:1];
NSValue *value = [NSValue valueWithPointer:p];
[array addObject:value];
//void *是泛型
int *newP = [value pointerValue];
NSLog(@"%d",*newP);
//NSRange
NSRange range = {14,35};
//NSRange range1 = NSMakeRange(3, 5);
// [array addObject:range1];
//[array addObject:range];
//将NSRange 结构体转换为NSValue
NSValue *rangeValue = [NSValue valueWithRange:range];
[array addObject:rangeValue];
//将NSRange 转换成NSRange
NSRange newRange = {0};
newRange = [rangeValue rangeValue];
NSLog(@"%lu,%lu",newRange.location,newRange.length);
Student stu = {"laowang",'m'};
//自定义结构体转换成NSVlaue对象
NSValue *stuValue = [NSValue valueWithBytes:&stu objCType:@encode(Student)];
//NSValue 对象 转换成结构体
Student newStu = {0};
[stuValue getValue:&newStu];
NSLog(@"%s,%c",newStu.name,newStu.gender);