Вам следует немного отложить «тяжелую» функцию и дать сработать индикатору активности.
попробуйте добавить 2,0, а не 2 к вашей задержке (я бы использовал гораздо меньшее значение - скажем, 0,3)
[self performSelector:@selector(updateFromInternet:) withObject:@"a" afterDelay:0.3];
если это не решит вашу проблему, вы должны посмотреть (или опубликовать) код, связанный с дополнительными материалами, которые есть в вашем коде, такими как: loading.alpha = 1; и blackOverlay.hidden = 0; я предполагаю, что элементы добавлены в индикатор активности