2009-06-18 7 views
2

Ich habe online Referenzen gefunden, die über zwei verschiedene Stammklassen für ObjC sprechen, entweder objc/Object.h oder Foundation/NSObject.h. Sie benötigen verschiedene Compiler-Flags (-lobj vs. -lobjc -framework Foundation) und verschiedene Selektoren zum Initialisieren von & freigebenden Objekten. Ist NSObject ein Ersatz oder haben sie unterschiedliche Anwendungen? Offensichtlich NSObject.h wäre besser für NextStep-Typ Zeug, hat aber Object.h Vorteile ? wäre es in bestimmten Situationen besser machenRichtige Wurzelklasse für Objective C?

FWIW, scheint die updated FAQ von comp.lang.objective-c die NSObject.h korrekt anzuzeigen; ein older version erwähnt Object.h

+0

in Objective-C kann man neue Root-Klassen erstellen, indem man einfach eine Klasse ohne Superklasse definiert. Daher ist es in Ordnung, mehrere Stammklassen zu haben – user102008

Antwort

6

Mein Verständnis für die Situation ist, gibt es zwei Laufzeit Bibliotheken für Objective-C. Apples Bibliothek, die u ses NSObject und die GNU-Bibliothek, die Object verwendet. Wenn Sie für eine Apple-Plattform entwickeln, verwenden Sie deren Laufzeit. Wenn Sie für eine Nicht-Apple-Plattform entwickeln, verwenden Sie die andere.