2014-02-07 52 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變量,你會沒事的。