Właśnie spędziłem trochę czasu na zastanawianie się, w jaki sposób można to zrobić w v0.20. Z tego, co wiem, nie można bezpośrednio zmienić podstawowego adresu URL bez dostania się do kodu źródłowego AFNetworking. Możesz utworzyć utworzyć nowy HTTPClient
i ustawić go, ale znalazłem, że spowodowało to jeszcze więcej problemów, prawdopodobnie dlatego, że RestKit wykonuje dodatkową konfigurację na HTTPClient
AFNetworking podczas konfigurowania RKObjectManager
, a ustawiając klienta bezpośrednio tracisz na że.
Wpadłem na to rozwiązanie, które polega na stworzeniu kolejnego RKObjectManager
z nowym baseURL i ponownym dodaniem deskryptorów. Będziesz także musiał ponownie ustawić serializację i typy nagłówków.
NSString *urlString = @"http://www.something.com/api";
RKObjectManager *newManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:urlString]];
[newManager setRequestSerializationMIMEType:RKMIMETypeJSON];
[newManager setAcceptHeaderWithMIMEType:RKMIMETypeJSON];
[newManager addResponseDescriptorsFromArray:[RKObjectManager sharedManager].responseDescriptors];
[newManager addRequestDescriptorsFromArray:[RKObjectManager sharedManager].requestDescriptors];
[RKObjectManager setSharedManager:newManager];
Powiązane dokumentacja: Using Multiple Base URLs in RestKit
poważnie? musisz ponownie dodać wszystkie deskryptory, aby zmienić bazę? EDIT: Ok po przeczytaniu dokumentacji widzę dlaczego, ponieważ nie chcesz zmieniać podstawowego adresu URL, gdy żądania są nadal uruchomione, itd. Więc domyślam się, po prostu zaimplementuj powyższy kod i przejdź z nim .. – deepwinter