Есть ли какая-либо нижняя сторона этого? Это просто, что компиляция займет больше времени?
Нет, не совсем. Это означает, что каждый раз, когда вы вносите изменения в любой заголовок, весь проект перекомпилируется. Но, с другой стороны, поскольку он предварительно скомпилирован, может быть экономия в случае, когда вам нужно перекомпилировать, но не менять заголовки.
Есть преимущество, чтобы набивать все ваши заголовки в файл pch, потому что это означает, что вы вряд ли опустите заголовок случайно. Иногда Objective-C компилирует вещи неправильно, если у него нет файла заголовка, например. если у вас есть два класса с методами, объявленных как:
-(void) doSomethingWith: (float) aNumber;
и
-(void) doSomethingWith: (double) aNumber;
без правильных заголовков, Objective-C может угадать неправильный doSomethingWith: и пройти двойной, где поплавок, как ожидается, или наоборот.
Сказав все это, я никогда не беспокоюсь о pch. Я имею в виду только импортировать заголовки в .m-файлах, где это возможно, и пересылать объявления классов в файлах заголовков.