如何将'CGPoint'包装为传递给performSelectorInBackground的对象参数?

时间:2014-01-07 05:33:35

标签: objective-c

我是COCOS2D的新手,我现在正试图将CGPoint作为参数传递给线程函数。我不知道如何将它包裹在一个物体中。有人可以帮忙吗?提前谢谢〜

3 个答案:

答案 0 :(得分:7)

您可以使用CGPoint创建NSValue并将其作为withObject参数传递:

NSValue *value = [NSValue valueWithCGPoint:CGPointMake(1.2, 22.6)];
[self performSelectorInBackground:@selector(someSelector:) withObject:value];

然后在你的选择器中,你可以像这样访问NSValue中的CGPoint:

CGPoint point = [value CGPointValue];

答案 1 :(得分:-1)

让我们说,你有

CGPoint p =ccp(10,10); 

您可以使用指针和malloc将其包装到对象中,如下所示: -

 CGPoint *wrappedP = malloc(sizeof(CGPoint)); 
    wrappedP->x = p.x;     
    wrappedP->y = p.y;

请务必致电

free(wrappedP);

完成wrappedP后,可以释放为wrappedP分配的内存。

答案 2 :(得分:-1)

试试这个:

class.h:

-(void) method:(CGPoint )point;

class.m:

-(void) method:(CGPoint )point
{
    NSLog(@"X:%f  Y:%f",point.x,point.y);
}

// method call 

[self method:CGPointMake(100.0f, 100.0f)];