2012-02-28 168 views
0

我做一些编程,我也是在同一时间阅读一些代码,我碰到过这样的代码这是一个方法如何调用另一种方法?

-(id)init 
{ 
    if ((self = [super init])) 
    { 
     some code.... 
     [self initEnemy]; 
    } 
    return self; 
} 

及以下,它有

-(void)initEnemy 
{ 
    more code.... 
    [self resetEnemy]; 
} 

,然后..

-(void)resetEnemy 
{ 
    more code.. etc.. 
} 

我看到它是呼吁方法initEnemyinit调用第一种方法的方式和,反过来调用。基本上一种方法带来另一种方法等等。 成功形成一个算法(你不能真正知道,因为我已经显示了很少的代码)。我以正确的方式看待它吗?

另外,我可否解释-(id)init方法内执行return self;时发生的情况。

回答

1

是的,你正在阅读正确的执行顺序。


当“回归”发生在一个方法,控制返回到“来电显示”的方法(谁最初称它摆在首位)。 “自我”在那里表明“自我”的价值应该交还给调用者。 (在这种情况下,“self”是指在-init中初始化的对象的实例。如果您想了解更多关于初始化程序的信息,可以将其分解为更具体的问题。)

+0

那么,什么是返回到 - (id)init方法是我的类的超级类?对不起,我可能会混淆。 – 2012-02-29 00:06:00

+1

@ElmedinZelenkic:你在问一些关于基本程序控制流程如何工作的超级广泛的东西。我的常规建议是通过一些初学者的Objective-C教程。 “init”方法内的“return”不会返回“*”*本身*,它将*返回给*任何调用init方法的人,这是您不显示的其他地方。它正在返回的是它自己的实例。 (“Init”在这方面有点特别/令人困惑,'self'返回给调用者刚刚初始化的对象实例。) – 2012-02-29 00:23:00

+0

明白了。非常感谢您回答我的问题。 – 2012-02-29 00:25:02

相关问题