0

我只是在学习 Objective-c,我正在尝试创建一个以 MySQL Timestamp 格式生成当前日期的类。代码编译得很好,但我收到以下错误。

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
4

2 回答 2

2

您的类的接口和实现之间存在不匹配。最简单的解决方案是更改以下行:

+ (NSString*) toString

请注意,+instead of-表示一个类方法。

于 2012-09-07T12:36:44.070 回答
0

您必须首先初始化对象。

getcurrenttime *objGetTime = [[getcurrenttime alloc] init];

然后调用它的方法...

NSString* CurrentDate = [objGetTime toString];

你已经完成了,你想要一个全局方法来调用......

NSString* CurrentDate = [getcurrenttime toString];

但在 getcurrenttime.m 文件中放置“-”而不是“+”。

+ (NSString*) toString
{
    NSDate *now =[NSDate 日期];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [格式化程序 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *toString = [格式化 stringFromDate:now];
    返回字符串;
}
于 2012-09-07T12:37:36.307 回答