调用Obj-C方法

时间:2014-04-05 16:43:11

标签: 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
}

肯定有更好的方法......

谢谢

2 个答案:

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

哪个是正确的。