如何初始化nsmutablearray中的对象?

时间:2016-07-28 06:51:54

标签: ios objective-c 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行。现在我的问题是,

我是否可以通过在NSURLSessionDownloadTask中添加每个NSMutableArray个实例来单行执行此操作。

这是我试过的

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

我知道上面的方法是错误的。我遇到的错误是表达式不可分配

我希望你能理解我的问题。有可能实现我的目标吗?

  

注意:我肯定想为downloadTask使用不同的名称   因为我需要在我的项目中稍后识别它们

3 个答案:

答案 0 :(得分:2)

尝试以下代码:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

试试这段代码:

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访问对象来重新启动对象。