更好的方法来保存网络数据

时间:2014-05-30 14:39:08

标签: objective-c

在我们的程序中,我们必须从服务器下载100多张图像并将其保存在本地。 我想在另一个主题中这样做。

问题是,我是否应该将它们全部一起运行,与全球队列中的GCD并行完成, 或者,如果我连续进行,将它们放入队列并使用NSOperation进行。 (我必须向用户显示流程的百分比)。

第一个选项:

for(int k=0;k<count;k++)
[self save];


    -(void)save
    {
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
     dispatch_async(queue, ^
        {
     //......

     dispatch_sync(dispatch_get_main_queue(), ^
    //....
    }

选项2是这样的(将所有这些添加到队列中)

   [self.imageOperationQueue addOperationWithBlock:^
            {

 [[NSOperationQueue mainQueue] addOperationWithBlock:^
                {

此外,是否必须在另一个线程中保存到用户默认值?

1 个答案:

答案 0 :(得分:0)

我使用了第二个,它适用于:

 [self.imageOperationQueue addOperationWithBlock:^
            {
 //download and create image
 [[NSOperationQueue mainQueue] addOperationWithBlock:^
                {
//save it to array