如何初始化 nsmutablearray 中的对象?

How to initialise an object which is inside nsmutablearray?

我有 10 个 NSURLSessionDownloadTask 实例可以同时下载 10 个文件。

每个实例的名称都不同(例如 downloadTask1、downloadTask2 等)

我将它们初始化如下,

self.downloadTask1 = [self.session downloadTaskWithURL:[NSURL url1]]
self.downloadTask2 = [self.session downloadTaskWithURL:[NSURL url2]]
self.downloadTask3 = [self.session downloadTaskWithURL:[NSURL url3]]
.
. 
self.downloadTask10 = [self.session downloadTaskWithURL:[NSURL url10]]

这需要 10 行。现在我的问题是,

我可以通过在 NSMutableArray 中添加每个 NSURLSessionDownloadTask 个实例来在单行中做到这一点吗?

这是我试过的

for(i=0;i<10;i++){
[self.downloadTaskArray objectAtIndex:i] = [self.session downloadTaskWithURL:[NSURL [self.urlArray objectAtIndex:i]]
}

我知道上面的方法是错误的。我遇到的错误是 Expression is not Assignable

希望您能理解我的问题。有可能实现我正在尝试的目标吗?

Note : I definitely want to use different name for downloadTask because i need to identify them later in my project

试试下面的代码:

for(i=0;i<10;i++){
    [self.downloadTaskArray addObject:[self.session downloadTaskWithURL:[NSURL [self.urlArray objectAtIndex:i]]];
}
for(i=0;i<10;i++)
{
    NSURLSessionDownloadTask* task = [self.session downloadTaskWithURL:[self.urlArray objectAtIndex:i]];
    [self.downloadTaskArray addObject:task];
}

试试这个代码:

for(int i=0;i<10;i++)
    {
        NSURLSessionDownloadTask* task = [self.session downloadTaskWithURL:[self.urlArray objectAtIndex:i]];
        task.taskIdentifier = i;//To keep track of download task in current session.(an identifier for this task, assigned by and unique to the owning session)
        [self.downloadTaskArray addObject:task];
    }

您可以通过从 taskIdentifier 访问它来重新启动对象。