Iphone 如何将结构包装到NSObject中
这应该很简单…我想,但我找不到一种方法如何将结构变量包装到Iphone 如何将结构包装到NSObject中,iphone,struct,nsmutablearray,nsvalue,Iphone,Struct,Nsmutablearray,Nsvalue,这应该很简单…我想,但我找不到一种方法如何将结构变量包装到NSObject中。有没有办法做到这一点?如果没有,我将如何将结构添加到NSMutableArray 谢谢。Hm,请查看 你可以像这样使用它 struct aStruct { int a; int b; }; typedef struct aStruct aStruct; 然后将其排序为一个NSValue对象,如: aStruct struct; struct.a = 0; struct.b = 0; NSValue *
NSObject
中。有没有办法做到这一点?如果没有,我将如何将结构添加到NSMutableArray
谢谢。Hm,请查看 你可以像这样使用它
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];
要从NSValue
中拉出结构,请使用:
NSValue *anObj = [array firstObject];
aStruct struct;
[anObj getValue:&struct];
我想稍后,您可以从NSValue中获得一个类别,以使其更好地=D 用法:
// Boxing
Pair pair; pair.val = 2; pair.count = 1;
NSValue *value = [NSValue valueWithPair:pair];
// Unboxing
NSValue value = ...
Pair anotherPair = [value pairValue];
将+(NSValue*)值与CGAffineTransform:(CGAffineTransform)转换一起使用代码>
来自文档:“创建包含指定CoreGraphics仿射变换结构的新值对象。”
+valueWithCGAffineTransform自iOS 2.0以来已存在。的可能重复项
// Boxing
Pair pair; pair.val = 2; pair.count = 1;
NSValue *value = [NSValue valueWithPair:pair];
// Unboxing
NSValue value = ...
Pair anotherPair = [value pairValue];
CGAffineTransform fooAffineTransform = CGAffineTransformMakeScale(.5, .5);
[NSValue valueWithCGAffineTransform:fooAffineTransform];