0

取 NSURLSession 的任务对象:

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:nil];

NSURLSessionDataTask *dataTask1 = [session dataTaskWithURL:[NSURL URLWithString:@"http://i.imgur.com/RARAP1J.jpg"]];

如果我在以下委托方法中:

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
    ....

如果我最终创建了一堆NSURLSessionDataTasks,我将如何检查哪个是dataTask指的。当然,我可以有一堆属性,但是如果我有 50 个任务,那会变得不守规矩,我希望能够在代码中自动设置它。

我知道该taskIdentifier方法可行,但它是readonly并且我希望能够设置它。

4

1 回答 1

0

您可以将任何您喜欢的字符串放入NSURLSessionTask.description. 我什NSJSONSerialization至习惯把东西NSDictionary放在那里。(在评论中询问,我会发布代码)。我可以验证这在任务的后台序列化中是否存在。

你也可以NSMutableDictionary在你的类中保留一个 ivar,映射taskIdentifier=> 任意信息,并在任务完成时删除条目。

于 2014-02-21T04:31:58.040 回答