Как преобразовать эту строку NSTimeInterval из Swift в Objective-C

Как преобразовать это в 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)];

person Community    schedule 14.04.2016    source источник


Ответы (1)


timeIntervalSinceReferenceDate: не является методом, реализованным в классе NSDate. При переходе от Objective-C к Swift Swift выполняет некоторое переименование с помощью инициализаторов.

Чтобы инициализировать объект NSDate в Objective-C со ссылкой на дату, вы должны вызвать либо метод класса dateWith..., либо метод экземпляра initWith...:

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

or...

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

Я добавил здесь const, чтобы сделать его более близким к коду Swift с объявлением let.

person nhgrif    schedule 14.04.2016