我正在使用AFNetworking 2.一切正常。但在这里我使用的是单例方法。我想在注销并再次登录时更改标头值。但AFNetworking标头值并没有改变。它始终保持以前的价值。我把断点放在单例方法中。这是第一次。之后它就不会了。
这是我的代码。
+ (ContactSync *)sharedAPI
{
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_sharedApi = [[self alloc] initWithBaseURL:[NSURL URLWithString:APIURL_BASEURL] ];
_sharedApi.requestSerializer = [AFHTTPRequestSerializer serializer];
_sharedApi.requestSerializer = [AFJSONRequestSerializer serializer];
[_sharedApi.requestSerializer setValue:[CommonUtils loginToken] forHTTPHeaderField:@"X-Auth-Token"];
NSLog(@"++++++++++++%@", [CommonUtils loginToken]);
_sharedApi.responseSerializer = [AFJSONResponseSerializer serializer];
});
return _sharedApi;
}
这里我用NSLog打印了这个值。但它只打印一次。请帮帮我。
答案 0 :(得分:1)
您正在使用dispatch_once
,因此该块只会执行一次。您必须获取ContactSync
类对象,并更改请求序列化程序的值。
[[ContactSync sharedAPI].requestSerializer setValue:[CommonUtils loginToken] forHTTPHeaderField:@"X-Auth-Token"];