我有一个班级方法
+ (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'没有已知的类方法一样。 我没有收到错误。任何人请帮助我。
答案 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
似乎是无效的语法。