zoukankan      html  css  js  c++  java
  • OC中的NSValue

     1     NSvalue把复杂的数据类型(指针、结构体等)存储成对象
     2     
     3     struct sct{
     4         int a;
     5         int b;
     6     }sctt={4,5};  
     7     
     8     NSValue *value=[[NSValue alloc] initWithBytes:&sctt objCType:@encode(struct sct)];
     9     
    10     NSLog(@"%s",@encode(int));结果是i
    11     NSLog(@"%s",@encode(float));结果是f
    12     NSLog(@"%s",@encode(long));结果是q
    13     NSLog(@"%s",@encode(struct sct));结果是{sct=ii}
    14     //同过每一个类型生成的字符串是唯一的
    15     if(strcmp(value.objCType, @encode(struct sct))==0{
    16         NSLog(@"it is struct sct");
    17     }
    18     
    19     //取出结构体数据
    20     struct sct newSctt;
    21     [value getValue:&newSctt];
    22     NSLog(@"%d %d",newSctt.a,newSctt.b);//结果是 4 5
    23     [value release];
    24     
    25     
    26     
    27     char *p=(char *)0x1f;
    28     NSValue *value1=[[NSValue alloc] initWithBytes:&p objCType:@encode(char *)];
    29     
    30     char *q;
    31     [value1 getValue:&q];
    32     NSLog(@"%p",q);结果是0x1f
    33     [value1 release];
    34     
    35     
    36     CGPoint point;
    37     CGsize size;
    38     CGRect rect;
    39     NSValue *pointValue=[NSValue valueWithPoint:point];
    40     NSValue *sizeValue=[NSValue valueWithSize:size];
    41     NSvalue *recrValue=[NSValue valueWithRect:rect];
    42     NSValue & rangeValue=[NSValue valueWithRange:NSMakeRange(3,4)];
  • 相关阅读:
    Go语言学习笔记(3)
    Haskell语言学习笔记(97)Phantom Type
    Rust语言学习笔记(12)
    堆排序 Rust实现
    Rust 智能指针(Rc)
    Rust 泛型
    Rust 枚举
    Rust 结构体
    Rust 引用
    二叉搜索树
  • 原文地址:https://www.cnblogs.com/sdutmyj/p/4562196.html
Copyright © 2011-2022 走看看