Вам нужно сделать многопоточное приложение. Тогда у вас может быть фоновый поток, опрашивающий сервер (или лучше, делающий асинхронные запросы к нему.
Посмотрите на классы NSOperation и NSOperationQueue. Вы сделаете каждую фоновую задачу представленной экземпляром класса NSOperation. Этот класс заботится о запуске операций, следит за тем, чтобы они выполнялись в соответствующем порядке, и учитывал любые установленные вами приоритеты.
Самый распространенный способ использования NSOperation - это написать собственный подкласс и переопределить метод main. Основной метод вызывается для выполнения операции, когда NSOperationQueue планирует его выполнение.
Если вы не хотите накладных расходов на создание подклассов, взгляните на класс NSInvocationOperation. Это конкретный подкласс NSOperation, который позволяет легко прикрепить операцию к существующему методу. NSInvocationOperation объекты могут быть добавлены в NSOperationQueue (так же, как NSOperations), так что вы получите многопоточность без необходимости создавать подклассы.