Парсинг метки времени Unix с RestKit в iOS - PullRequest
5 голосов
/ 13 января 2012

Для приложения для iOS, над которым я работаю с RestKit, мне нужно проанализировать метку времени Unix, измененную = "1325470840", в NSDate.Я знаю, что могу сделать это вручную с помощью

[NSDate dateWithTimeIntervalSince1970:1325470840]

Но я использую интеграцию данных ядра RestKits, и это происходит за кулисами с использованием форматеров даты, например, ниже.Кто-нибудь знает, как создать средство форматирования даты для анализа метки времени Unix?Или как я могу разобрать это с RestKit?

1 Ответ

3 голосов
/ 13 января 2012

Ну, я нашел свою проблему.RestKit исправил это в выпуске № 141, но сервер, с которым я обращаюсь, возвращает строку вместо ожидаемого числа, поэтому автоматический анализатор не знает, что с ним делать.Я создал запрос на добавление анализатора NSString> NSNumber> NSDate в RestKit (# 503).В то же время я вручную обновляю строку до числа, показанного ниже, до фактического анализа.

- (void)objectLoader:(RKObjectLoader *)loader willMapData:(inout id *)mappableData
{
    NSArray *dateKeys = [NSArray arrayWithObjects:@"changed", nil];
    NSMutableArray *reformattedData = [NSMutableArray arrayWithCapacity:[*mappableData count]];

    for(id dict in [NSArray arrayWithArray:(NSArray*)*mappableData]) {
        NSMutableDictionary* newDict = [dict mutableCopy];
        for(NSString *dateKey in dateKeys) {
            NSNumber *num = [NSNumber numberWithInt:[[newDict valueForKey:dateKey] intValue]];
            [newDict setValue:num forKey:dateKey];
        }
        [reformattedData addObject:newDict];
    }
    *mappableData = reformattedData;
}
...