Question

Pour une application iOS Je travaille avec RestKit je besoin d'analyser un horodatage unix changé = "1325470840" dans un NSDate. Je sais que je peux le faire manuellement avec

[NSDate dateWithTimeIntervalSince1970:1325470840]

Mais j'utilise RestKits cœur l'intégration des données et cela est géré dans les coulisses en utilisant formatteurs date, comme ci-dessous.

[RKObjectMapping addDefaultDateFormatterForString:@"E MMM d HH:mm:ss Z y" inTimeZone:nil];

Quelqu'un sait comment créer une date formatter pour analyser un horodatage unix? Ou comment je pourrais aller sur l'analyse syntaxique avec ce RestKit?

Était-ce utile?

La solution

Eh bien, j'ai trouvé mon problème. RestKit fixé ce dans le numéro 141, mais le serveur je contacte renvoie une chaîne au lieu d'un nombre prévu si l'analyseur automatique ne sait pas quoi faire. J'ai créé une demande pour ajouter un NSString> NSNumber> analyseur NSDate à RestKit (# 503). En attendant, je mets à jour manuellement la chaîne à un numéro comme indiqué ci-dessous avant l'analyse réelle arrive.

- (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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top