IOS - 调度队列 - 计时问题

时间:2014-04-29 14:10:02

标签: ios objective-c

我正在尝试在IOS应用中显示加载器屏幕,同时加载4个单独的数据刷新源。基本上我想排队每个Feed,当完成所有操作后导航到主页 - 这是我的调度队列代码 -

dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {


    [self loadFitnessPlan:[prefs valueForKey:@"customerUID"]];


    NSLog(@"Block1 End");
});

dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
    // block2
    NSLog(@"Block2");
      [self loadMessages:nil customeruid:[prefs valueForKey:@"customerUID"] categoryuid:nil messageopen:0];

    NSLog(@"Block2 End");
});
dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
    // block3
    NSLog(@"Block3");
    [self loadShopItems:nil clientuid:nil];

    NSLog(@"Block3 End");
});
dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
    // block4
    NSLog(@"Block4");
    [self loadResources:nil restypeuid:nil];

    NSLog(@"Block4 End");
});


dispatch_group_notify(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
    // block5
   NSLog(@"HOPEFULLY WORKED");
 [self completedLoad];
});

completedLoad方法如下:

-(void)completedLoad{

    dispatch_async(dispatch_get_main_queue(), ^{


    SWRevealViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"loadedArea"];
    controller.managedObjectContext = self.managedObjectContext;

});

}

会发生什么 - 如果我从completedload中删除逻辑并添加一个NSlog,它是控制台中出现的最后一件事 - 如果我保留上面的代码,它会在后台数据加载的中途触发 - 不会对我来说有任何意义!?有什么想法吗?

0 个答案:

没有答案