这是一个方法如何调用另一种方法?
问题描述:
我做一些编程,我也是在同一时间阅读一些代码,我碰到过这样的代码这是一个方法如何调用另一种方法?
-(id)init
{
if ((self = [super init]))
{
some code....
[self initEnemy];
}
return self;
}
及以下,它有
-(void)initEnemy
{
more code....
[self resetEnemy];
}
,然后..
-(void)resetEnemy
{
more code.. etc..
}
我看到它是呼吁方法initEnemy
init
调用第一种方法的方式和,反过来调用。基本上一种方法带来另一种方法等等。 成功形成一个算法(你不能真正知道,因为我已经显示了很少的代码)。我以正确的方式看待它吗?
另外,我可否解释-(id)init
方法内执行return self;
时发生的情况。
答
是的,你正在阅读正确的执行顺序。
当“回归”发生在一个方法,控制返回到“来电显示”的方法(谁最初称它摆在首位)。 “自我”在那里表明“自我”的价值应该交还给调用者。 (在这种情况下,“self”是指在-init
中初始化的对象的实例。如果您想了解更多关于初始化程序的信息,可以将其分解为更具体的问题。)
那么,什么是返回到 - (id)init方法是我的类的超级类?对不起,我可能会混淆。 – 2012-02-29 00:06:00
@ElmedinZelenkic:你在问一些关于基本程序控制流程如何工作的超级广泛的东西。我的常规建议是通过一些初学者的Objective-C教程。 “init”方法内的“return”不会返回“*”*本身*,它将*返回给*任何调用init方法的人,这是您不显示的其他地方。它正在返回的是它自己的实例。 (“Init”在这方面有点特别/令人困惑,'self'返回给调用者刚刚初始化的对象实例。) – 2012-02-29 00:23:00
明白了。非常感谢您回答我的问题。 – 2012-02-29 00:25:02