如何在NSURLSessionDownloadTask线程之外检索结果?

时间:2014-07-10 15:43:03

标签: ios7 nsurl nsurlrequest nsurlsession nsurlsessiondownloadtask

如何从NSURL文件中检索结果?在此示例中,在completionHandler中,我的结果位于名为*localfile的文件中。然后,我在单独的NSXMLParserDelegate中使用NSObject解析本地文件。一切都很好。但是我希望并且需要将数组_storeProductArray的结果用于其他地方。

例如,最后一个NSLog(@"_storeProductArray %@", _storeProductArray);为空...我希望在NSURLSession主题之外看到结果。

由于

    NSDate *startDate1 = [NSDate date];

    NSURL *storeProductURL = [NSURL URLWithString:storeProductLookupResult];

    NSURLRequest *urlRequest                 = [NSURLRequest requestWithURL:storeProductURL];

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session                    = [NSURLSession sessionWithConfiguration:configuration];
    NSURLSessionDownloadTask *task           = [session downloadTaskWithRequest:urlRequest
                                                              completionHandler:^(NSURL *localfile, NSURLResponse *response, NSError *error)
                                                {
                                                    if (!error)
                                                    {
                                                        if ([urlRequest.URL isEqual:storeProductURL])
                                                        {
                                                            [productXMLQuery parseDocumentWithURL:localfile];

                                                            _storeProductArray = [productXMLQuery productArray];

                                                            NSDate *endDate1 = [NSDate date];

                                                            NSTimeInterval interval1 = [startDate1 timeIntervalSinceDate:endDate1];
                                                            NSLog(@"1 - Time took: %f", interval1);

                                                            NSLog(@"_storeProductArray %@", _storeProductArray);
                                                        }
                                                    }
                                                } ];
    [task resume];

    NSLog(@"_storeProductArray %@", _storeProductArray);

0 个答案:

没有答案