Различие между объектом и NSObject

Это не так полный ответ, а скорее один пример автообновления механизма, который я недавно реализовал. Ситуация немного отличается от типа Firefox традиции пользовательского приложения, так как это был внутренний инструмент, используемый на работе.

В основном, это - немного сценария, который управляет очередью ответвлений Подверсии, которые будут созданы и упакованы в установщике. Это читает немного файла, где имена ответвлений написаны, берет первый, переписывает его в конце файла и запускает процесс сборки, который включает вызов набора сценариев. Конфигурация для каждого ответвления для создания записана в.INI файле, хранившем в репозитории Подверсии наряду с самим инструментом.

, поскольку этот инструмент работает на нескольких компьютерах, я хотел способ обновить его автоматически на всех машинах, как только я внес изменение или в сам инструмент, или в сценарии конфигурации.

способ, которым я реализовал его, был прост: когда я запускаю инструмент, это становится "внешней оболочкой". Эта внешняя оболочка делает 2 очень простых вещи:

  • svn update на себе и на конфигурационных файлах
  • сам запуск снова, на этот раз как "внутренняя оболочка", та, которая на самом деле обрабатывает одну конфигурацию (и затем выходит снова).

Эта очень простая update-myself-in-a-loop система служила нам очень хорошо в течение нескольких месяцев теперь. Это очень изящно, потому что это является автономным: auto-updater является самой программой. Поскольку "внешняя оболочка" (auto-updater часть) так проста, она не имеет значения, что она не извлекает выгоду из обновлений как "внутренняя оболочка" (который выполняется от обновленного исходного файла каждый раз).

8
задан S.L. Barth - Reinstate Monica 23 July 2012 в 13:16
поделиться

3 ответа

You should ignore Object.

Objective-C allows multiple root classes. Object is a root class that predates NSObject. It's never something you would want to go use. It's only relevant when something somehow already interacts with Object, so you have to deal with it. This is very rare.

Object doesn't implement -retain and -release, for example.

6
ответ дан 5 December 2019 в 11:25
поделиться

Objective-C is just the language.

The Cocoa frameworks use the NSObject base class as the root class for the hierarchy. Other implementations use their own root classes, in your case the Object class.

6
ответ дан 5 December 2019 в 11:25
поделиться

NSObject contains all the infrastructure of the Cocoa framework. In other words it conforms to several protocols that Object does not and will respond to certain methods that Object will not. Specifically see NSObject Class Reference and

3
ответ дан 5 December 2019 в 11:25
поделиться