如何将此NSTimeInterval行从Swift转换为Objective-C

时间:2016-04-14 12:36:36

标签: objective-c nsdate nstimeinterval

如何将其转换为Objective-C?

let date = NSDate(timeIntervalSinceReferenceDate: interval)

我试过了:

NSDate *date = [NSDate timeIntervalSinceReferenceDate: (interval)];

当然会产生错误。

告诉我:没有已知的选择器timeIntervalSinceReferenceDate的类方法:

此处还有一些背景信息:

 NSTimeInterval interval = [[NSDate alloc]init].timeIntervalSinceReferenceDate + [NSDate weekInSeconds].doubleValue;
    NSDate *date = [NSDate timeIntervalSinceReferenceDate: (interval)];
    return [self isSameWeekAsDate:(date)];

1 个答案:

答案 0 :(得分:1)

timeIntervalSinceReferenceDate:不是NSDate类上实现的方法。当从Objective-C桥接到Swift时,Swift会使用初始化器重命名。

为了使用引用日期初始化Objective-C中的NSDate对象,您必须调用类方法dateWith...或实例方法initWith...

NSDate * const date = [NSDate dateWithTimeIntervalSinceReferenceDate: timeInterval];

...或

NSDate * const date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate: timeInterval];

我在这里添加了const,以使其更符合Swift代码和let声明。