2010-02-17 9 views

Antwort

21

Sie müssen das UIKit verwenden, wenn Sie GUI-Komponenten benötigen. Aber Sie brauchen nicht diese Bibliothek zu importieren, wenn es bereits auf dem Prefix.pch definieren ist:

#ifdef __OBJC__ 
    #import <Foundation/Foundation.h> 
    #import <UIKit/UIKit.h> 
#endif 

Es Sie diese Bibliotheken für alle aktuellen Projekt importieren.

+0

Ich wusste das nicht. Vielen Dank. –

+0

Notierte @ RobNapiers Antwort unten, in der er sagt, dass Sie es in jedes '.h' importieren sollten, das ES irgendwie BENUTZT. –

+1

Beachten Sie, dass Prefix.pch jetzt veraltet ist – andreacipriani

0

Sie sollten es in der .h-Datei jeder Klasse importieren, die es benötigt. Dies ist der Fall, es sei denn, die Klasse erweitert eine andere Klasse, die sie importiert, dann müssen Sie dies nicht tun. Wahrscheinlich möchten Sie nichts Komplexeres machen, da alle iPhone-Apps die Bibliothek verlinken werden. Wenn wir über eine dritte oder weniger bekannte Bibliothek sprechen, sollten Sie vorsichtig sein. Um Probleme mit der Wiederverwendbarkeit von Code zu vermeiden.

23

Während die PCH-Datei ist praktisch zum Vorkompilieren von Kopfzeilen für Sie, empfehle ich wirklich, dass Dateien importieren, was sie verwenden. Das macht es viel einfacher, die Abhängigkeiten zu verstehen und den Code viel einfacher wiederzuverwenden, einschließlich der Wiederverwendung über Plattformen hinweg (iPhone vs. Mac).

In diesem Sinne lautet die Antwort, dass Sie UIKit.h nicht in jede Datei importieren sollten. Sie sollten es in jede Datei importieren, die UIKit verwendet. Das sollten Ihre View- und Controller-Klassen sein. Modellklassen sollten UIKit fast nie verwenden. Sie sollten grundsätzlich Foundation.h importieren. Durch die Einhaltung dieser Regel können Sie Ihre Objekte problemlos in andere Projekte verschieben, die möglicherweise einen anderen Code in der .pch-Datei enthalten, und Ihre Modellklassen auf iPhone und Mac leichter wiederverwenden.

Ich empfehle auch nicht, dass Sie UIKit.h oder Foundation.h in Unterklassen Ihrer eigenen Klassen importieren. Normalerweise importiere ich UIKit, AppKit oder Foundation in die oberste Header-Datei in meinem Code. Wenn ich beispielsweise eine UIView-Unterklasse namens MYAbstractView habe, die UIKit.h importiert (um die Definition von UIView einzuschließen) und dann eine MYConcreteView-Unterklasse hinzufüge, würde ich einfach MYAbstractView.h importieren.

Beachten Sie, dass UIKit und AppKit beide bereits importieren, also gibt es keinen Grund, beide zu importieren.

+1

Passt dieser Kommentar immer noch mit den neuesten Versionen von Xcode/iOS, w/ARC, etc? – NathanChristie

+1

Nichts in den letzten Versionen von Xcode würde diesen Ratschlag ändern. –

Verwandte Themen