Objective c 调用Obj-C方法
我想使用不同的方法a调用方法B。问题是方法B的aksed参数在方法a中不存在。 这是我试过的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 } 当然
-(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,而不是选择的位置。原因可能是什么?您应该共享更多的代码,或者询问有关此问题的其他问题。