您的位置:首页 > 产品设计 > UI/UE

iOS中的NSValue

2015-08-12 11:12 573 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: