Objective c 调用Obj-C方法

Objective c 调用Obj-C方法,objective-c,methods,Objective C,Methods,我想使用不同的方法a调用方法B。问题是方法B的aksed参数在方法a中不存在。   这是我试过的 -(void) methodA { // some code CGSize *size = [CGSizeMake(self.frame.size.width, self.frame.size.height)]; [self methodB:size]; } -(void) methodB:(CGSize) size { //some code } 当然

我想使用不同的方法a调用方法B。问题是方法B的aksed参数在方法a中不存在。   这是我试过的

-(void) methodA {

     // some code

    CGSize *size = [CGSizeMake(self.frame.size.width, self.frame.size.height)];

    [self methodB:size];
}

-(void) methodB:(CGSize) size {

    //some code
}
当然有更好的方法


谢谢

我认为您的代码不会被编译

CGSize不是一个对象。 重构到:

CGSize size = CGSizeMake(self.frame.size.width, self.frame.size.height);
[self methodB:size];

您应该只围绕方法包装
[]
CGSizeMake(self.frame.size.width,self.frame.size.height)
是一个函数,而不是一个方法,所以去掉方括号。您可以判断它是函数,因为函数看起来像
functionName(argument1,argument2,…)
,而方法看起来像
[对象方法名称:argument1方法名称continued:argument2]

此外,
CGSizeMake
返回一个
CGSize
结构,而不是指向
CGSize
结构的指针,因此在
*size
中去掉
*

然后,您将看到以下内容:

CGSize size = CGSizeMake(self.frame.size.width, self.frame.size.height);
[self methodB:size];

这是正确的。

好的。。到目前为止,这是可行的,但是(方法b定位一些精灵)精灵定位在0,0,而不是选择的位置。原因可能是什么?您应该共享更多的代码,或者询问有关此问题的其他问题。