Podczas nauki programowania iPhone, każdy Xcode szablon Widziałem zawiera plik programu NazwaAp-Prefix.pch o następującej treści:Dlaczego szablony Xcode mają #imports powielające Prefix.pch?
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
moim rozumieniu jest to, że zawartość tego pliku są prefiksem do każdego z plików kodu źródłowego przed kompilacją. Jednak każdy z pozostałych plików również importuje UIKit, co wydaje się zbędne. Na przykład, main.m
zaczyna ...
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
...
aplikacji Cocoa w systemie Mac OS X to samo, importowanie Cocoa.h zarówno w pliku prefiks i plików nagłówkowych.
Dlaczego oba? Usunąłem dyrektywy #import
ze wszystkich plików źródłowych oprócz pliku prefiksu, a następnie skompilowałem i działałem poprawnie.