group = dispatch_group_create(); dispatch_group_enter(group); [context performBlock:^{ result = [context executeFetch:... dispatch_group_leave(group); }]; groupResult = dispatch_group_wait(group, DISPATCH_TIME_FOREVER);