可能我的問題會很愚蠢。AFNetworking和單身人士
我見過很多使用AFNetworking的應用程序的例子和教程。 其中許多使用創建單身客戶端與REST服務器進行交互。 例如:
@interface APIClient : AFHTTPClient
+ (APIClient *)sharedClient;
@end
@implementation APIClient
+ (APIClient *)sharedClient {
static APIClient *sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedClient = [[APIClient alloc] initWithBaseURL:[NSURL URLWithString:baseUrl]];
});
return sharedClient;
}
@end
但是,是否有安全的單身人士呢?如果我的應用程序是多線程的,那麼有一個單例很方便嗎?
EDIT
在這種tutorial使用類RestfulClass這是一個單。 它也用於委託來通知請求的結果。 使用委託.. ..這似乎不是最好的選擇,如果你正在使用一個單身人士,這是我的想法是正確的嗎?
假設我們有兩個類:A和B 兩者都使用單例,所以使用sharedClient
方法。 A和B可以將他們自己設置爲委託...這是錯誤的,因爲一個覆蓋另一個... 所有方法都無法控制線程安全,這是正確的嗎?
singleton是單個實例,可以由多個線程共享,這可以通過確保對象在線程中正確同步 (就像您的方法所做的那樣)來完成。由於網絡請求異步運行並支持併發操作,因此它在Cocoa中非常安全。 – 2014-08-27 12:02:06
我修改了我的問題。謝謝 – Safari 2014-08-29 10:38:25