创建后可以更改RKObjectManager的基本URL吗?

我有登录框,并根据昵称决定应使用哪个API网址。如果我在填写完昵称/密码后创建了RKObjectManager,则只能从RestKit(https://groups.google.com/forum/?fromgroups#!topic/restkit/wFNhpCW-URA)进行一次调用。如果我创建RKObjectManager viewDidLoad函数-我无法更改URL。

我的问题有同样的解决方法吗?

谢谢。

最佳答案

只是花了一段时间才能弄清楚如何在v0.20中完成此操作。据我所知,如果不进入AFNetworking源代码,就无法直接更改基本URL。您可以创建一个新的HTTPClient并进行设置,但是我发现这引起了更多的问题,大概是因为在您设置HTTPClient时,RestKit在AFNetworking的RKObjectManager上进行了一些额外的配置,并且直接设置了客户端,您就没有了。

我想出了这个解决方案,它是使用新的baseURL创建另一个RKObjectManager并重新添加描述符。您还需要再次设置序列化和 header 类型。

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

08-26 03:43