XCode собирается делать все свои данные на основе временных меток файлов, о которых идет речь. Если вы замените файл более новым файлом, то Xcode должен заметить, что временная метка файла новее, чем временная метка продукта сборки, и перекомпилировать его.
Однако, если вы измените его на более старую версию исходного файла, тогда он не сможет знать, что файл сборки неправильный. Он просто увидит, что выходные данные сборки все еще новее исходного файла, и поэтому не перекомпилируют его.
Короче говоря, вы не можете знать, какие файлы определенно изменились, а какие - нет. Вам лучше сделать полную чистку + перестроить, чтобы убедиться; иначе вы потеряете время на отладку, когда она не работает.