- 1
- 2
- 3
...
([dictionary stringObjectForKey:@"scale"].length > 0) ? (_scale = [dictionary stringObjectForKey:@"scale"]) : (_scale = @"1");
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
...
([dictionary stringObjectForKey:@"scale"].length > 0) ? (_scale = [dictionary stringObjectForKey:@"scale"]) : (_scale = @"1");
...
Инициализация переменной с помощью тернарной операции.
Больше на руби/CSS/говно похоже
Во всяком случае раньше был, как там у него с генериками и прочими новшествами С11 не знаю.
PITUH *pituh_pointer = malloc(sizeof(PITUH));
А в крестах, емнип, надо кастить!
Поставил плюс за папу, проверь.
В объектном си щас тоже не напишеш без каста - манагеры заинтересованы максимально затрахать разработчика и требуют настраивать сейчас в компиляторе Варнинг ас Еррор
Можно межать код на си и обжи. Собссно, программа под ios/macos начинается с обычного сишного main, внутри которого делается какой-нить NSApplication
в древности objc реализовывался препроцессингом и преврашал код в си
теперь это уже не так.
Из за обратной совместимости с сями в обжс много мерзких лиреталов. Нельзя писать "foo" потому что это будет строка (char*), надо писать @"Foo" (NSString будет) итд.
ну а сходства с рубями у них от общего предка smalltalk
Так что яблочинику надо было уметь и чистый си тоже.
Вполне себе: CFTypeID SecKeychainGetTypeID(void);
Правда теперь у всего есть свифтообертки (или у свифта хороший интероп с сями и он умеет их просто вызывать)_
- ну, неплохой. https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html#//apple_ref/doc/uid/TP40014216-CH8-XID_13
В C++ так же было: был кросскомпилятор Cfront, который код на C++ превращал в код на чистом Си. Наследник Cfront'а — коммерческий компилятор Comeau C++.
А ещё в старых версиях LLVM (до версии 3.1) был сишный бекенд (-march=c), выдававший страшный код.