Когда вы запрашиваете с сервера, вы можете использовать асинхронный NSURLRequest для получения данных.Затем вы можете оставить свой NSTimer в главном потоке, потому что все, что он будет делать, - это создавать асинхронный NSURLRequest каждые 15 секунд.В противном случае вы можете создать NSTimer в фоновом потоке, создав таймер с помощью
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
Затем добавьте таймер в любой цикл выполнения, который вы хотите, вызвав
[[NSRunLoop currentRunLoop] addTimer:MY_TIMER forMode:NSDefaultRunLoopMode];
(замените currentRunLoopзапустите цикл, в который вы хотите включить NSTimer.)