【发布时间】:2014-11-26 05:53:50
【问题描述】:
我创建了一个带有单例的AFHTTPSessionManager 的子类(代码如下),但现在我需要根据用户位置调整基本 URL(根据用户调用世界不同地区的不同服务器地点)。似乎此类的大多数示例都使用不允许您调整基本 URL(只读属性)的单例。有没有一种简单的方法可以让我使用 AFHTTPSessionManager 调整基本 URL?
+ (RebelBaseManager *)sharedRebelBaseHTTPClient; {
static RebelBaseManager *_sharedRebelBaseHTTPManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedRebelBaseHTTPManager = [[self alloc] initWithBaseURL:[NSURL URLWithString:baseURL];
_sharedRebelBaseHTTPManager.securityPolicy.allowInvalidCertificates =YES;
});
return _sharedRebelBaseHTTPManager;
}
【问题讨论】:
-
共享可变状态是个坏主意。出于这个原因,
baseURL属性为readonly。相反,您应该根据需要创建具有不同baseURLs 的实例,或者甚至完全退出该功能。 -
@mattt 我很害怕 :)...感谢您的回复。
-
My answer 有点相关,如果您决定手动编写绝对 URL。
标签: ios8 singleton afnetworking afnetworking-2