如何从appdelegate中的对象类调用方法?

时间:2011-12-29 07:55:28

标签: iphone objective-c ios xcode

我有2个对象类。 A类和B类 在我的appdelegate.m中,我可以访问A类中的方法,但不能访问B类。我不知道为什么。

在appdelegate.m

.... .... ....

-(void)classAMethod:(classA *)classAObj {

     [classAObj classAMethod];
}

-(void)classBMethod:(classB *)classBObj {

     [classBObj classBMethod];
}

.... .... ....

在我的VC课程中,我输入了以下代码:

.... .... ....

myAppDelegate *appDelegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate classAMethod:classAObj];

[appDelegate classBMethod:classBObj];

.... .... ....

它只能访问A类中的方法。如何访问B类中的方法?有人可以帮忙吗?谢谢。 *如果不详细,请再次告诉我。

4 个答案:

答案 0 :(得分:1)

您在以下行中传递classA obj而不是classB obj。

[appDelegate classBMethod:classAObj];

请检查一下。

答案 1 :(得分:1)

好像你错过了这种语言。看看“classAMethod”,你在appDelegate.m声明它,因此它属于appDelegate类。在classAMethod体中,您调用对象classAObj上的方法(递归调用),该方法不实现此方法。您实际上向对象classAObj发送了一条无法响应的消息。在任何情况下,你都有一个非常混乱的代码...

答案 2 :(得分:0)

[appDelegate classAMethod:classAObj];

[appDelegate classBMethod:classAObj];  //here you need to pass the classBObject

答案 3 :(得分:0)

涉及应用代表的重点是什么?你似乎正在做的就是在你传入的对象上调用相同的方法。为什么不这样做:

[classAObj classAmethod]; 

直接在您的视图控制器中?目前尚不清楚你想要实现的目标。