Я бы посмотрел, можете ли вы использовать executeSelectorOnMainThread: переместите код Tableview в свой собственный метод и перезвоните к нему, когда закончите загрузку данных.
Делегаты также полезны в этом сценарии - заставьте ваш PlanDomain вызывать функцию делегата, когда это будет сделано.
Одновременно, если вы хотите что-то более обособленное, посмотрите на использование NSNotification s. Они наиболее полезны, когда код, который вы пишете, не должен знать или заботиться о том, что произойдет, когда он будет завершен - ему просто нужно объявить миру, что он выполнил свою работу. (Наиболее полезно, когда есть потенциально более чем одна вещь, которая может быть заинтересована в действии, когда она завершится.
В любом из них вы не хотите спать - просто дайте рупору справиться с этим.