如何将Struct包装到NSObject中

| 这应该是微不足道的。。。我想,但是我找不到一种方法来将Struct变量包装成
NSObject
。有办法吗?如果没有,我将如何向struct1中添加结构? 谢谢。     
已邀请:
嗯,尝试看看https://developer.apple.com/documentation/foundation/nsvalue的the2 你可以像这样使用它
struct aStruct
{
    int a;
    int b;
};
typedef struct aStruct aStruct;
然后将其“包装”到一个
NSValue
对象,例如:
aStruct struct; struct.a = 0; struct.b = 0;
NSValue *anObj = [NSValue value:&struct withObjCType:@encode(aStruct)];
NSArray *array = @[anObj];
要将结构从ѭ2中拉出,请使用:
NSValue *anObj = [array firstObject];
aStruct struct;
[anObj getValue:&struct];
我想以后,您可以从NSValue中创建一个类别,以使其变得更好= D     
像这样的东西就是@Rpranata在谈论的类别:)
struct _Pair
{
    short val;
    short count;
};
typedef struct _Pair Pair;

@interface NSValue (Pair)
+ (id)valueWithPair:(Pair)pair;
- (Pair)pairValue;
@end

@implementation NSValue (Pair)
+ (id)valueWithPair:(Pair)pair
{
    return [NSValue value:&pair withObjCType:@encode(Pair)];
}
- (Pair)pairValue
{
    Pair pair; [self getValue:&pair]; return pair;
}
@end
用法:
// Boxing
Pair pair; pair.val = 2; pair.count = 1;
NSValue *value = [NSValue valueWithPair:pair];

// Unboxing
NSValue value = ...
Pair anotherPair = [value pairValue];
    
+ (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform;
从文档中:\“创建一个包含指定CoreGraphics仿射变换结构的新值对象。”
CGAffineTransform fooAffineTransform = CGAffineTransformMakeScale(.5, .5);
[NSValue valueWithCGAffineTransform:fooAffineTransform];
自iOS 2.0起,+ valueWithCGAffineTransform已经存在。     

要回复问题请先登录注册