我想使用不同的方法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
}
肯定有更好的方法......
谢谢
答案 0 :(得分:0)
我认为您的代码不会被编译。
CGSize不是一个对象。 重构为:
CGSize size = CGSizeMake(self.frame.size.width, self.frame.size.height);
[self methodB:size];
答案 1 :(得分:0)
你应该只围绕方法包装[]
。 CGSizeMake(self.frame.size.width, self.frame.size.height)
是一个函数,而不是一个方法,所以摆脱方括号。你可以告诉它它是一个函数,因为函数看起来像functionName(argument1, argument2, ...)
,而方法看起来像[object methodName:argument1 methondNameContinued:argument2]
。
此外,CGSizeMake
会返回CGSize
结构,而不是指向CGSize
结构的指针,因此请忽略*
中的*size
。
然后你会留下这个:
CGSize size = CGSizeMake(self.frame.size.width, self.frame.size.height);
[self methodB:size];
哪个是正确的。