AFNetworking单例类问题

时间:2014-09-16 12:41:15

标签: ios afnetworking-2

我正在使用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打印了这个值。但它只打印一次。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您正在使用dispatch_once,因此该块只会执行一次。您必须获取ContactSync类对象,并更改请求序列化程序的值。

[[ContactSync sharedAPI].requestSerializer setValue:[CommonUtils loginToken] forHTTPHeaderField:@"X-Auth-Token"];