我已经将AFNetworking的AFHTTPSessionManager
子类创建了我自己的http客户端,我编写了很多类别,实用程序方法,oauth2,重试登录等等。
我有这种方法来创建sharedSession
:
+ (MTHTTPClient *)sharedSession {
static MTHTTPClient *sharedSession = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURL *baseURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@:%@", kABXMyAppProtocol, kABXMyAppHost, kABXMyAppPort]];
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
...
});
return sharedSession;
}
一切都很好。
现在我有这个要求创建另一个客户端,但只有不同的NSURLSessionConfiguration
,用于后台下载/上传。
我想保留围绕此http客户端构建的所有细节和类别。
我不确定如何继续,建立另一个类(或单个子类,有点气味)似乎不太可行,因为我需要重复的逻辑数量。
如上所示创建另一个实例方法会有效吗?我的理解是,单身人士的目的是只保留一个班级的一个实例,所以这可能是一个坏主意或根本不工作。
答案 0 :(得分:0)
是的,创建另一个单身人士真是太酷了。单身人士并没有什么神奇之处,它只是你创建和重复使用的一个实例。你可能有一个或一千个。只要它们存储在不同的static
变量中,您就可以了。