我需要调用一个已在同一个类中定义的方法。我从函数A调用方法initiateSession。
-(BOOL)intitiateSession
{
//stmts
return YES;
}
-(BOOL)A
{
if([self initiateSession])
{
//stmts
}
return YES;
}
获取运行时错误,
由于未捕获的异常而终止应用
无法初始化类对象
@implementation Data
-(BOOL)initiateSession
{
NSLog(@"I am into the initiateSession!!");
return YES;
}
-(BOOL)getNHPData{
NSLog(@"In getNHPData!!");
if([self initiateSession])
{
NSLog(@"I am into the session");
}
return YES;
}
@end
这里在if循环中我将调用该函数。执行函数,如果函数
执行为true我进入范围。我无法从
调用一个函数其他功能。
答案 0 :(得分:3)
getNHPData()
不是初始值设定项,不应该调用[super init]
。这是您可以在自己的初始化程序中调用的内容。您编写的代码甚至无法编译(您的@implementation
行不正确)。你肯定会在上面的代码中收到许多你应该听的警告(你在一个案例中从BOOL方法返回self
,而在另一个案例中没有return
。您的实际错误表明您正在执行类似[Data getNHPData]
的操作,这是不合法的,因为getNHPData
是一种实例方法。您也应该收到关于此的警告。
首先,清理所有警告。这可能会让你朝着正确的方向前进。 Cocoadevcentral对您遇到的所有问题都有quick intro。
答案 1 :(得分:1)
您需要在覆盖[super init]
时调用-(id) init
。
参见#3和#6 here。
答案 2 :(得分:1)
在您的班级中覆盖super init
时,请始终进行init
来电。