Следующий код получает ответ JSON от моего сервера, который состоит из массива элементов, каждый из которых имеет ключ «create_at» и «updated_at». Для всех этих элементов я хочу удалить один символ (двоеточие) в строках, которые установлены для этих двух ключей.
- (void)objectLoader:(RKObjectLoader*)loader willMapData:(inout id *)mappableData {
// Convert the ISO 8601 date's colon in the time-zone offset to be easily parsable
// by Objective-C's NSDateFormatter (which works according to RFC 822).
// Simply remove the colon (:) that divides the hours from the minutes:
// 2011-07-13T04:58:56-07:00 --> 2011-07-13T04:58:56-0700 (delete the 22nd char)
NSArray *dateKeys = [NSArray arrayWithObjects:@"created_at", @"updated_at", nil];
for(NSMutableDictionary *dict in [NSArray arrayWithArray:(NSArray*)*mappableData])
for(NSString *dateKey in dateKeys) {
NSString *ISO8601Value = (NSString*)[dict valueForKey:dateKey];
NSMutableString *RFC822Value = [[NSMutableString alloc] initWithString:ISO8601Value];
[RFC822Value deleteCharactersInRange:NSMakeRange(22, 1)];
[dict setValue:RFC822Value forKey:dateKey];
[RFC822Value release];
}
}
Однако строка [dict setValue:RFC822Value forKey:dateKey];
поднимает NSUnknownKeyException
с сообщением this class is not key value coding-compliant for the key created_at
.
Что я здесь не так делаю? Моя главная проблема, возможно, в том, что мне не очень комфортно с этой декларацией ...