美文网首页
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