Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何将结构包装到NSObject中_Iphone_Struct_Nsmutablearray_Nsvalue - Fatal编程技术网

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];