2014-02-07 28 views
1

我已经创建了我自己的http客户端,我写了很多类别,实用程序方法,oauth2,重试登录和whatnot AFNetworking的AFHTTPSessionManager单例避免子类的多个类方法?

我有这样的方法来创建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客户端构建的所有细微和类别。

我不确定如何继续,建立另一个类(或singleton子类,有点闻)似乎不是真正可行的,由于我必须复制的逻辑数量。

创建另一个如上所示的实例方法将工作吗?我的理解是,单身人士的目的是只保留一个班级的实例,所以这可能是一个坏主意,或根本不工作。

回答

0

是的,创建另一个单身人士是非常酷的。单身人士没有什么魔力,只是你创建和重用的一个实例。你可以有一个或一千个。只要他们存储在不同的static变量,你会没事的。