Search code examples
iosobjective-ciphonexcodeios9

iOS 9 : Get Value From NSURLSessionDataTask In Framework


I had iOS framework which it send JSON to server using NSURLSessionDataTask like this :

NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
    int responseStatusCode = [httpResponse statusCode];

    if (responseStatusCode == 200)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
    [self.delegate onJsonHttpResult:data andStatusResponse:responseStatusCode];
});
    }
    else
    {
        dispatch_async(dispatch_get_main_queue(), ^{
    [self.delegate onJsonHttpResult:nil andStatusResponse:responseStatusCode];
});
    }

}];

[postDataTask resume];

but whenever I run it, [self.delegate onJsonHttpResult:nil andStatusResponse:responseStatusCode]; not called.

is there any way to get value outside NSURLSessionDataTask when it run inside the framework ?

Thanks


Solution

  • Thanks for help but I still need delegate to return my value outside framework.

    I got issued that whenever I done with NSURLSessionDataTask, delegate is became null, I think it cause that delegate already released after I got response from NSURLSessionDataTask, So I tried to change @property delegate to strong and it work. I can return my value using delegate again. Thanks