可能我的问题会很愚蠢。
我已经看过很多使用 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
但是,为此使用单例是否安全?如果我的应用程序是多线程的,那么单例是否方便?
编辑
在这个 tutorial使用一个单例类 RestfulClass。
它还用于委托(delegate)通知请求的结果。
使用委托(delegate)..如果您使用单例,这似乎不是最佳选择,我的想法是否正确?
假设我们有两个类:A 和 B
两者都使用单例,所以
sharedClient
方法。 A 和 B 可以将自己设置为委托(delegate)...这是错误的,因为一个会覆盖另一个...所有方法都无法控制线程安全,这是正确的吗?
最佳答案
在这里迟到了,但我也在寻找有关如何在 AFNetworking 周围正确设置单例的信息。我找到了这篇博文:
singleton-afnetworking
基本上它表明 AFNetworking 可以毫无问题地处理并发请求。
关于ios - AFNetworking 和单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526137/