rpetrich дал вам правильный ответ, но рассматривали ли вы вместо этого использование цикла?
while (condition is not met)
{
// logic that affects condition.
}
Также, если «условие» зависит от внешних сил (пользовательский ввод, загрузка и т. Д.), То ни один из них не является правильным, и вы можете вызвать взаимоблокировку - в этом случае два случая не могут быть завершены, поскольку они оба ждут другого.
Если это так, вы должны использовать таймер, который проверяет состояние каждые XXX секунд или около того. Самый простой способ - использовать функцию «executeSelector», которую можно использовать для запуска вызова через определенное время.
1008 * Е.Г. *
-(void)someFunc
{
if(!condition)
{
[self performSelector:@selector(someFunc) withObject:nil afterDelay:1.0];
}
}