开发者

cannot init a class object-Objective C

I need to call a method that has been defined in the same class.I am calling the method initiateSession from the function A.

-(BOOL)intitiateSession
{
 //stmts
 return YES;
}
-(BOOL)A
{
 if([self initiateSession])
 {
  //stmts
 }
 retur开发者_运维知识库n YES;
}

getting a runtime error as,

Terminating app due to uncaught exception

cannot init a class object

EDITED:

@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

Here in the if loop i will call the function.Execute the function and if the function

executes to true i'm getting inside the scope.I could not able to call one function from

other function.


getNHPData() is not an initializer and should not be calling [super init]. That is something you would call from within your own initializer. Your code as written will not even compile (your @implementation line is incorrect). You are certainly receiving many warnings in the above code that you should be listening to (you're returning self from a BOOL method in one case, and have no return in the other case). Your actual error suggests you're doing something like [Data getNHPData] which is not legal since getNHPData is an instance method. You should be getting warnings about that as well.

First, clean up all your warnings. That will probably get you moving in the right direction. Cocoadevcentral has a quick intro to all the issues you're running into.


You need to call [super init] in your overwrite of -(id) init.

See #3 and #6 here.


Always do a super init call, when you override init in your class.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜