Язык является надстройкой над C
(любой C код компилируется objective-c компилятором). Добавлением к Си
являются: объектно-ориентированность в стиле Smalltalk (вызов любого
метода — посылка сообщения объекту), строки, логический тип (BOOL
, значения YES
или NO
), и др.
Язык отличается идеологически от C++ тем, что использует сообщения
вместо вызовов. То есть при вызове у объекта A метода b, мы просим
объект A вызвать метод, если этого метода нет, то выводится warning (в
runtime'е), а не ошибка компиляции, как в C++. Так же в Objective-C все
функции являются виртуальными, и RTTI присутствует в любом объекте.
Для создания объекта в Objective C необходимо вызвать метод класса (похожая схема используется в Ruby). Это делает использование таких паттернов, как абстрактная фабрика или синглтон (одиночка), тривиальными.