Глядя на версию исходного кода библиотеки времени выполнения Objective-C для Mac OS X 10.8 code, я заметил, что у него есть NSObject.mm файл. Как следует из названия, у него есть реализация класса NSObject
, а также встроенный пул автоматического выпуска и реализации сохранения счетчика.
Однако версии библиотеки времени выполнения ObjC до версии Mountain Lion не реализовывали класс NSObject
(у них не было файла NSObject.mm
, как вы можете видеть на исходный код библиотеки времени выполнения Objective-C для Mac OS X 10.7, например).
Значит ли это, что класс NSObject
теперь является частью библиотеки времени выполнения Objective-C, а не компонентом библиотеки Foundation? Если да, то почему? Чтобы избежать одной ссылки на всю библиотеку Foundation (с -framework Foundation
) при создании подкласса NSObject
?