剛用了一會兒搞清楚如何在v0.20完成。從我所知道的情況來看,您無法直接更改基本URL,而無需進入AFNetworking源代碼。你可以創建一個新的HTTPClient
並設置它,但我發現這導致更多的問題,大概是因爲RestKit在AFNetworking的HTTPClient
上做了一些額外的配置,當你設置RKObjectManager
,並通過設置客戶端直接你錯過了那。
我想出了這個解決方案,它是用新的baseURL創建另一個RKObjectManager
並重新添加描述符。您還需要重新設置序列化和標題類型。
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];
相關文檔:Using Multiple Base URLs in RestKit
嚴重嗎?您必須重新添加所有描述符才能更改baseUrl?編輯:好吧,閱讀文檔後,我明白了爲什麼,這是因爲你不想在請求仍在運行時更改基礎URL等等。所以我想只是實現上面的代碼並繼續使用它.. – deepwinter