我在网上找到了关于ObjC的两个不同根类的引用,objc/Object.h
或Foundation/NSObject.h
。它们需要不同的编译器标志(-lobj
与-lobjc -framework Foundation
,并且有不同的选择器用于初始化和释放对象.NSObject是替代品,还是它们有不同的应用程序?显然NSObject.h
会是对于NextStep类型的东西更好,但Object.h
是否具有在某些情况下会更好的优势?
FWIW,来自comp.lang.objective-c的updated FAQ似乎表明NSObject.h
是正确的; older version提及Object.h
答案 0 :(得分:5)
我对这种情况的理解是Objective-C有两个运行时库。 Apple的库使用NSObject,而GNU库使用Object。如果您正在为Apple平台开发,请使用其运行时。如果您正在为非Apple平台开发,则使用另一个。