在for循环中,在GCD内部,暂停,获取输入,继续

时间:2012-05-21 03:03:41

标签: objective-c performance for-loop objective-c-blocks grand-central-dispatch

我想知道是否有办法摆脱gcd,在输入提醒视图中显示然后返回进程?这是我的正常程序:

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{


    NSMutableArray *array = [NSMutableArray new];
    for(NSIndexPath * ip in [self.tableView indexPathsForSelectedRows]){
        [array addObject:[CompanyObjectsArray objectAtIndex:ip.row]];
    }
    //I need to check for a an Object here, if present get input from User.
    [self addCompaniesOrCreate:[NSArray arrayWithArray:array]];



    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

我将所有对象添加到核心数据中,

但我有需要,如果一家公司是“Appl3”,我应该得到用户的输入,如果我得到它,继续并循环其余,或者跳过当前的“Appl3”公司

有没有办法可以有效地做到这一点,在for()循环中,暂停,获取输入,继续for()循环

感谢帮助人员:)

1 个答案:

答案 0 :(得分:0)

我没有意识到这一点。通常的模式是编写自己的方法,将块作为完成处理程序。因此,基本上,当您获得所需的用户输入时,您会将要运行的块传递回主线程。

致以最诚挚的问候,

斯文。