Почему эта функция возвращает одно и то же значение независимо от ввода? - PullRequest
2 голосов
/ 20 марта 2019

У меня есть метод, который форматирует строку даты. Я столкнулся с проблемой, когда он возвращает только отформатированную версию первой строки NSSt, которую я ему передал ..

Код:

  self.lastUpdatedLabel.text  =   [self convertTime:lastupdated];
  self.expiryDate.text        =   [self convertTime:expiryDate];

Метод

- (NSString *)convertTime:(NSString *)date{

    NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
    [timeFormatter setDateFormat:@"HH:mm - dd/MM/yyyy"];
    [timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    date = [timeFormatter stringFromDate:[[NSDate alloc]init] ];
    return date;
}

И lastUpdatedLabel, и дата истечения имеют значение expiryDate. Конечно, метод выполняется каждый раз, когда он вызывается, производя другой вывод, так как ввод отличается

1 Ответ

0 голосов
/ 20 марта 2019

Похоже, вам нужно обновить код, чтобы использовать аргумент, date.

Как уже упоминалось в комментариях, вы используете текущее время, [[NSDate alloc] init] вместо date, которое было передано.

Если lastUpdated и expiryDate являются NSDates, то это будет работать.

- (NSString *)convertTime:(NSDate *)date{

    NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
    [timeFormatter setDateFormat:@"HH:mm - dd/MM/yyyy"];
    [timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
    return [timeFormatter stringFromDate:date];
}

Если lastUpdated и expiryDate - строки NSSt, что выглядит так, как у вас, то вам нужно преобразовать строки NSStates в NSDates, используя NSDateFormatter, который понимает формат строки NSString, который у вас есть ... и затем передайте этот NSDate приведенному выше коду для создания правильно отформатированной строки в качестве вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...