目标C-unknown类选择器的方法

时间:2015-05-08 09:01:58

标签: objective-c

我有一个班级方法

+ (NSString *)calcRemaingTimeToDate:(NSDate *)startDate:(NSDate *)endDate;


- (void)calcRemaingTime
{
    if (self.meeting.startTime) {
        self.timeToMeetingOutput.text:self startDate = [AppContext calcRemaingTimeToDate:self.meeting.startTime];
        CGRect bound = [self.timeToMeetingOutput.text boundingRectWithSize:CGSizeMake(278.f, 16.f)
                                                                   options:NSStringDrawingUsesLineFragmentOrigin
                                                                attributes:@{NSFontAttributeName: self.timeToMeetingOutput.font}
                                                                   context:nil];
        self.timeToMeetingWidth.constant = bound.size.width + 10.f;
    }

但是得到一个错误,就像选择器'calcRemaingTimeToDate'没有已知的类方法一样。 我没有收到错误。任何人请帮助我。

2 个答案:

答案 0 :(得分:1)

您的方法声明说

 + (NSString *)calcRemaingTimeToDate:(NSDate *)startDate:(NSDate *)endDate; 

但是你打电话calcRemaingTimeToDate:错过了endDate:部分。

传递第二个参数应解决问题。

答案 1 :(得分:1)

在你的班级方法中:

+ (NSString *)calcRemaingTimeToDate:(NSDate *)startDate:(NSDate *)endDate;

有两个参数,但在你的代码中你只传递一个:

[AppContext calcRemaingTimeToDate:self.meeting.startTime];

因此,编译器无法识别该方法。这个方法应该像这样调用:

[AppContext calcRemaingTimeToDate:self.meeting.startTime :secondParam];

在您的方法声明中还有另一个问题,您没有为第二个参数指定方法名称部分,您的方法名称应该是这样的:

+ (NSString *)calcRemaingTimeFromDate:(NSDate *)startDate toDate:(NSDate *)endDate;

它应该被称为:

[AppContext calcRemaingTimeFromDate:self.meeting.startTime toDate:secondParam];

同样在您的代码中,此self.timeToMeetingOutput.text:self startDate似乎是无效的语法。