Korzystam z narzędzia RestKit do kierowania interakcjami z moim serwerem WWW. Próbuję użyć routingu do POST obiektu Event do serwera z dołączonym obrazem. Kod jest w następujący sposób:Przesyłanie obrazu z programu RestKit
RKObjectManager *manager = [RKObjectManager sharedManager];
RKObjectMapping *map = [self eventMapping];
manager.serializationMIMEType = RKMIMETypeFormURLEncoded;
map.rootKeyPath = @"event";
[manager.mappingProvider setSerializationMapping:map forClass:[Event class]];
[manager.router routeClass:[Event class] toResourcePath:@"/v1/events.json" forMethod:RKRequestMethodPOST];
[manager postObject:event delegate:self block:^(RKObjectLoader *loader){
RKObjectMapping *serMap = [[[RKObjectManager sharedManager] mappingProvider] serializationMappingForClass:[Event class]];
NSError *error = nil;
NSDictionary *d = [[RKObjectSerializer serializerWithObject:event mapping:serMap] serializedObject:&error];
RKParams *p = [RKParams paramsWithDictionary:d];
[p setData:[event imageData] MIMEType:@"image/jpeg" forParam:@"image"];
loader.params = p;
}];
Jeśli utworzyć instancję RKParams wykorzystaniem zserializowaną obiekt Event, następnie dodać dane obrazu i przypisać go jako majątku RKObjectLoader na params wszystkie właściwości stać jeden masywny odcinkach ciąg. Musi być sposób na przesłanie obrazu bez masowej serializacji ciągów znaków.
Próbowałem również mieć właściwość NSData, która jest zmapowana do jakiegoś atrybutu, konwertując UIImage na NSData po drodze, ale RestKit skarży się, że nie można go zmapować. Czy ktoś to wcześniej zrobił?
Działa idealnie! Tylko jedna uwaga: próba zaklasyfikowania wszystkiego do "zdarzenia" poprzez ustawienie właściwości rootKeyPath obiektu RKObjectMapping już nie działa. – Jacob
Czy to działa w systemie iOS 6? Wciąż dostaję "RestKit został poproszony o retransmitowanie nowego strumienia treści dla żądania. Możliwy błąd połączenia lub wyzwanie uwierzytelnienia?" –