如何初始化 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 访问它来重新启动对象。
我有 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 访问它来重新启动对象。