我只是在学习Objective-c而我正在尝试创建一个以MySQL时间戳格式生成当前日期的类。代码编译正常,但我收到以下错误。
012-09-07 08:21:00.368 jsonclient[6831:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[getcurrenttime toString]: unrecognized selector sent to class 0x36a9c'
我确信这是一个简单的答案,但我一直无法找到它。这是我对该类的调用,后跟标题和.m文件。
NSString* CurrentDate = [getcurrenttime toString];
#import <UIKit/UIKit.h>
@interface getcurrenttime : NSObject {
NSString *toString;
}
+(NSString*) toString;
@end
#import "getcurrenttime.h"
@implementation getcurrenttime
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
- (NSString*) toString {
NSDate *now =[NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
toString = [formatter stringFromDate:now];
return toString;
}
@end
答案 0 :(得分:2)
类的接口和实现之间存在不匹配。最简单的解决方案是改变以下行:
+ (NSString*) toString
请注意+
而不是-
,表示类方法。
答案 1 :(得分:0)
您必须先初始化对象。
getcurrenttime *objGetTime = [[getcurrenttime alloc] init];
然后调用它的方法......
NSString* CurrentDate = [objGetTime toString];
你已经完成了,你需要一个全局方法来调用...
NSString* CurrentDate = [getcurrenttime toString];
但是在getcurrenttime.m文件中输入“ - ”而不是“+”。
+ (NSString*) toString { NSDate *now =[NSDate date]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *toString = [formatter stringFromDate:now]; return toString; }