在一个类(名为TimeDetails)中,我需要调用一个方法(类方法),但在编译期间我收到此消息:TimesDetails可能无法响应'generateTimeOfPassage',(一个方法调用另一个方法并发送一个NSString对象。(在这种情况下,返回nil)。
<。>在.h文件中我声明了这样的方法:+(NSString *)generateTimeOfPassage:(NSString *)_timeString;
<。>文件中的:
-(void)initWithTimeData:(NSString *)_timeString{
[super init];
passage=[self generateTimeOfPassage:_timeString]; ---I have the message here...
}
+(NSString *)generateTimeOfPassage:(NSString *)_timeString{
return nil;
}
谢谢!
马克西姆
答案 0 :(得分:6)
+ generateTimeOfPassage是一个类方法,所以它应该使用类名而不是对象来调用:
passage=[TimeDetails generateTimeOfPassage:_timeString];
答案 1 :(得分:2)
如果前面有+
,那么它就是一个类方法(在Java中,这将被称为静态方法)。当有-
时,它就是一个实例方法。 See here for further explanation.