Objective-C

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Objective-C — объектно-ориентированный язык программирования, который был восран как расширение Си.

Описание[править]

Любой корректный код на C является валидным кодом на Objective-C и компилируется без изменений. А вот обратное понятное дело неверно, так как расширение это довольно толстое и определённые понятия оригинальный прочитальник просто не поймёт.

Целью создания языка сего было решить проблему дублирования кода в крупных проектах структурного программирования, сделав объекты модульными и легко переиспользуемыми, подобно аппаратным интегральным схемам.

После приобретения NeXT компанией Apple в 1996 году Objective-C стал стандартным языком для Mac OS X. Именно пожилая яблочная компания стала инсталлировать немалое количество денег в разработку, так что вышла потом и вторая спецификация языка.

Вообще язык специфический. Скажем вместо вызова методов используется синтаксис сообщений в квадратных скобках. Например следующих похрюкивающий код можно назвать вполне валидным епта.

[myRect setOrigin:30.0 y:50.0];                    // именованные аргументы
float area = [myRect area];                        // возврат значения
[myRect setColor:[otherRect color]];               // вложенное сообщение

Ну или вот так можно тут прокукарекать в текстовый файл:

@implementation Rect

+ (instancetype)newRect
{
    Rect *rect = [[Rect alloc] init];
    [rect setWidth:1.0f];
    [rect setHeight:1.0f];
    return rect;
}

- (float)area
{
    return self.width * self.height;        // современный dot-синтаксис
}

@end
Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++ScalaH и Ё+Программист-бетонщик
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCPИсходный кодSingle-Page ApplicationGiteaForgejoCephIDEДжуниорРепозиторийPostgreSQLSQLiteJQueryБуферWebGLПереполнение буфераХардкодInvoke-WebRequestСкрипт для автоблокировки новых пользователейРазделение диапазоновПроверка диапазоновGeoLite2-Country.mmdbObjective-C
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.jsОптимизацияТестированиеAmbreon866Реверс-инжинирингКроссплатформенностьJSON
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур ПейпертПроблемаK!ockyTypeScriptОтладчикБитЭффективный менеджер (IT)TauriReact NativeWindows APIТипPyTorchTensorFlowПарсерNode.jsFastAPIVue.jsSvelteБэкендElectronBroken Object Level AuthorizationМаппингДжастин ФранкельHex-редакторVisual Basic .NETNext.jsDocker ComposeNode modulesIndexedDBDos2unix
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffiВибе-кодингFlutterАппликативный оператор