美文网首页
iOS 结构体快速转为NSValue对象

iOS 结构体快速转为NSValue对象

作者: smallLabel | 来源:发表于2019-03-04 12:28 被阅读0次

    objc_boxable
    OC可能你经常会看到@(100)等用法。不用奇怪,就是这个Function attributes
    使用示例:

    struct __attribute__((objc_boxable)) some_struct {
      int i;
    };
    union __attribute__((objc_boxable)) some_union {
      int i;
      float f;
    };
    typedef struct __attribute__((objc_boxable)) _some_struct some_struct;
    
    some_struct ss;
    NSValue *boxed = @(ss);
    

    NSValue转为自定义结构体:

    struct __attribute__((objc_boxable)) MapPoint {
        int x;
        int y;
    };
    
    @interface NSValue(MapPoint)
    
    - (struct MapPoint)mappointValue;
    
    @end
    
    @implementation NSValue(MapPoint)
    
    - (struct MapPoint)mappointValue {
        struct MapPoint point;
        [self getValue:&point];
        return point;
    }
    
    @end
    

    相关文章

      网友评论

          本文标题:iOS 结构体快速转为NSValue对象

          本文链接:https://www.haomeiwen.com/subject/rglhuqtx.html