Objective-C er hlutbundið forritunarmál sem hefur gegnt lykilhlutverki í þróun hugbúnaðar fyrir tæki frá Apple. Sem viðbót við C-málið sameinar Objective-C skipulagsþætti C og hlutbundna eiginleika innblásna af Smalltalk, sem gerir forriturum mögulegt að búa til flókin og skilvirk forrit. Málið var upphaflega þróað snemma á níunda áratugnum, var tekið upp af NeXT fyrir NeXTSTEP-stýrikerfið og kom til Apple þegar Apple keypti NeXT árið 1997, en eftir það varð það aðalmálið við þróun forrita fyrir macOS og síðar iOS. Styrkur Objective-C felst í samþættingu þess við Cocoa- og Cocoa Touch-framework Apple, sem veita forriturum aðgang að fjölbreyttum verkfærum og söfnum til að smíða allt frá einföldum öppum til háþróaðra hugbúnaðarlausna. Þótt Swift, nýrra forritunarmál frá Apple, hafi í auknum mæli tekið við hlutverki Objective-C er Objective-C áfram mikilvægur hluti margra fyrirliggjandi forrita og grunnur að skilningi á þróunarsögu vistkerfis Apple.
Objective-C er hlutbundið forritunarmál sem útvíkkar C með eiginleikum úr Smalltalk, sem gerir það sérstaklega vel til þess fallið að þróa kvik og sveigjanleg forrit. Það er þekkt fyrir skilaboðasendingar við keyrslu, sem gera forriturum kleift að skrifa kóða sem er bæði einingaskiptur og endurnýtanlegur. Objective-C var í mörg ár aðalmálið við þróun forrita fyrir macOS og iOS, og samþætting þess við Cocoa-framework gerir mögulegt að búa til rík notendaviðmót og flókin forrit með tiltölulega litlum erfiðismunum. Þótt Swift sé nú ákjósanlegasta málið fyrir kerfi Apple er Objective-C áfram mikilvægur hluti margra fyrirliggjandi kóðagrunna og samvirkni þess við Swift tryggir að það gegnir áfram hlutverki í nútímaappþróun.
Meira um Objective-C
Objective-C er hlutbundið forritunarmál sem einkum er notað til að þróa hugbúnað fyrir kerfi Apple á borð við macOS og iOS. Málið er þekkt fyrir að sameina skilvirkni C og hlutbundna eiginleika Smalltalk, sem gerir það að öflugu verkfæri fyrir forritara sem vilja búa til traust og skalanleg forrit. Málskipan og keyrsluumhverfi Objective-C eru hönnuð til að styðja kvika bindingu og skilaboðasendingar, sem veitir forriturum sveigjanleika og stjórn á kóða sínum.
Tæknilega byggir Objective-C á C-málinu en bætir við hlutbundnum eiginleikum í gegnum klasa og aðferðir. Málið notar keyrslusafn sem gerir kvika týpun og aðferðaúthlutun mögulega, sem gerir kleift að breyta hegðun forrits á meðan það keyrir. Þetta keyrsluumhverfi er einn af lykilþáttunum sem greina Objective-C frá öðrum málum, þar sem það gerir forriturum kleift að útfæra háþróaða eiginleika á borð við kvik aðferðaskipti (method swizzling) og sjálfsskoðun.
Objective-C er notað í þremur meginsamhengjum, sem hvert um sig styður ólíkar tegundir þróunarverkefna:
Þróun iOS-forrita: Sögulega var Objective-C aðalmálið við þróun iOS-forrita. Það hefur verið notað til að búa til allt frá einföldum öppum til flókinna, grafíkþungra forrita sem nýta iOS-kerfið til fulls. Málið samþættist náið Cocoa Touch-framework, sem gerir mögulegt að nýta iOS-sértæka eiginleika á borð við bendingar, hreyfimyndir og netsamskipti.
Hugbúnaðarþróun fyrir macOS: Objective-C er einnig notað til að þróa forrit fyrir macOS. Með Cocoa-framework geta forritarar búið til öflug borðtölvuforrit sem nýta eiginleika macOS á borð við fjölverkavinnslu, skráameðhöndlun og myndvinnslu. Geta Objective-C til að vinna náið með C og C++, því síðarnefnda í gegnum Objective-C++, gerir það að góðum kosti fyrir forritara sem vilja samþætta fyrirliggjandi kóðagrunna í macOS-verkefni.
Þróun safna og verkfæra: Objective-C er oft notað til að þróa söfn og verkfæri sem endurnýta má í ólíkum verkefnum. Þetta nær yfir allt frá íhlutum notendaviðmóts til netsamskiptareglna og reiknirita fyrir gagnavinnslu. Sveigjanleiki málsins og kvikt keyrsluumhverfi gera mögulegt að búa til einingaskiptar og útvíkkanlegar lausnir sem laga má að sérþörfum.
Einn mesti styrkur Objective-C er geta þess til að samþættast fyrirliggjandi C- og C++-kóða, sem gerir forriturum mögulegt að endurnýta og útvíkka fyrirliggjandi kóðagrunna án þess að endurskrifa þá frá grunni. Þetta er sérstaklega gagnlegt í stórum verkefnum þar sem skilvirkni kóða og viðhald skipta sköpum. Auk þess styður Objective-C háþróaða eiginleika á borð við categories og protocols, sem gera forriturum kleift að bæta virkni við fyrirliggjandi klasa og skilgreina samninga fyrir hluti, sem stuðlar að endurnýtingu kóða og einingaskiptingu.
Keyrsluumhverfi Objective-C er annar mikilvægur kostur. Það gerir forriturum kleift að útfæra kvika eiginleika á borð við sjálfsskoðun og method swizzling, sem gerir mögulegt að breyta hegðun forrits á meðan það keyrir. Þetta er sérstaklega gagnlegt í forritum sem krefjast mikils sveigjanleika og aðlögunarhæfni, svo sem forritum sem nota viðbætur eða útvíkkunareiningar.
Í reynd hefur Objective-C gegnt lykilhlutverki í þróun margra þeirra forrita sem notuð eru daglega á tækjum frá Apple. Það hefur átt þátt í að móta notendaupplifunina á iOS og macOS með því að veita forriturum þau verkfæri sem þeir þurfa til að búa til aðgengileg og snörp forrit. Þótt Swift sé nú ákjósanlegasta málið fyrir flest ný verkefni er Objective-C áfram mikilvægur hluti af vistkerfi Apple, sérstaklega við viðhald og uppfærslu fyrirliggjandi forrita.
Í stuttu máli er Objective-C mál sem sameinar öfluga hlutbundna eiginleika og skilvirkni C, sem hefur gert það að eðlilegum kosti fyrir forritara sem vinna með fyrirliggjandi kóða á kerfum Apple. Geta þess til að samþættast fyrirliggjandi kóða og kvikt keyrsluumhverfi þess gera það að fjölhæfu verkfæri í hugbúnaðarþróun, þar sem sveigjanleiki og skilvirkni skipta sköpum.
Algengar spurningar um Objective-C
Hver er grundvallarmunurinn á Objective-C og Swift?
Objective-C er eldra forritunarmál sem var þróað á níunda áratugnum og var í mörg ár aðalmálið við þróun forrita fyrir macOS og iOS. Það byggir á C og bætir við hlutbundnum eiginleikum, sem gerir mögulegt að skrifa skipulegri og endurnýtanlegri kóða. Objective-C notar keyrsluumhverfi sem leyfir kvika bindingu og sjálfsskoðun, sem veitir mikinn sveigjanleika en getur einnig leitt til villna sem koma aðeins fram við keyrslu og til lítillar yfirbyggingar í aðferðaköllum.
Swift var hins vegar kynnt til sögunnar af Apple árið 2014 sem nútímalegur valkostur við Objective-C. Swift er hannað til að vera öruggara og auðveldara að lesa og skrifa, með málskipan sem er einfaldari og síður villugjörn. Það styður eiginleika á borð við optionals, sem hjálpa til við að meðhöndla gildi sem vantar á öruggan hátt, og hefur stranga tegundaathugun, sem dregur úr hættu á keyrsluvillum. Swift er einnig bestað fyrir afköst og getur oft skilað hraðari kóða en Objective-C, þótt munurinn fari eftir verkefninu.
Í samanburði við Objective-C, sem krefst dýpri skilnings á C og flækjum þess, er Swift aðgengilegra fyrir nýja forritara og styður hraðari þróunarlotur. Nútímalegir eiginleikar Swift og aukið öryggi gera það að ákjósanlegasta kostinum fyrir marga forritara sem vinna með vistkerfi Apple.
Hvernig sér Objective-C um minnisstjórnun?
Objective-C notar tilvísanatalningu við minnisstjórnun. Hver hlutur hefur teljara sem sýnir hve margir hlutar forritsins halda tilvísun í hann. Þegar teljarinn nær núlli er hluturinn losaður.
Áður þurftu forritarar sjálfir að kalla á aðferðirnar retain og release, sem var algeng uppspretta villna. Í dag er Automatic Reference Counting (ARC) notað, þar sem þýðandinn setur þessi köll inn sjálfkrafa. Forritarar þurfa þó enn að vera meðvitaðir um tilvísanahringi, þar sem tveir hlutir halda hvor í annan og eru aldrei losaðir. Komist er hjá þeim með því að nota veikar tilvísanir með lykilorðinu weak.
Hverjir eru kostir og gallar þess að nota Objective-C í iOS-þróun?
Einn kostur Objective-C er að málið hefur verið notað fyrir kerfi Apple í mörg ár. Fyrir vikið eru til mörg rótgróin söfn og eldri öpp skrifuð í málinu, og það vinnur vel með Swift í sama verkefni. Málið er kvikt og getur notað C-kóða beint.
Gallarnir eru orðmeiri málskipan og færri öryggiskerfi en í Swift, til dæmis við meðhöndlun tómra gilda. Apple leggur nú áherslu á Swift og SwiftUI, og nýir eiginleikar og dæmi eru fyrst og fremst gefin út fyrir Swift. Objective-C verður því oftast fyrir valinu við viðhald fyrirliggjandi kóða frekar en í nýjum verkefnum.
Hvernig eru protocols útfærð í Objective-C?
Protocol í Objective-C lýsir safni aðferða sem klasi getur lofað að útfæra, líkt og interface í öðrum málum. Protocol er skilgreint með @protocol og síðan nafni og aðferðayfirlýsingum, og því er lokað með @end.
Aðferðir má merkja sem @required, sem verður að útfæra, eða @optional, sem má sleppa. Klasi gefur til kynna að hann uppfylli protocol með því að skrifa nafn þess innan oddklofa í klasayfirlýsingunni og útfæra síðan aðferðirnar. Protocols eru oft notuð í delegate-mynstrinu, þar sem einn hlutur felur öðrum tiltekin verkefni.
Hvaða þýðingu hafa categories í Objective-C?
Categories í Objective-C gera mögulegt að bæta nýjum aðferðum við fyrirliggjandi klasa án þess að breyta upprunalegum kóða hans eða búa til undirklasa. Þetta á einnig við um kerfisklasa á borð við NSString, sem frumkóðinn er ekki aðgengilegur fyrir.
Categories eru notaðar til að skipta stórum klösum upp í nokkrar skrár og til að bæta við hjálparföllum sem nota má í öllu verkefninu. Sérstakt afbrigði sem kallast class extension er notað til að lýsa yfir einkaaðferðum og -eiginleikum. Gæta ætti þess að gefa aðferðum í categories ekki sömu nöfn og fyrirliggjandi aðferðir hafa, þar sem það getur leitt til ófyrirsjáanlegrar hegðunar. Swift hefur svipaðan eiginleika sem kallast extensions.
Hvernig virkar skilaboðakerfið í Objective-C?
Í Objective-C er kallað á aðferðir með því að senda hlutum skilaboð. Málskipanin notar hornklofa, til dæmis [object method]. Í stað þess að fallið sé ákvarðað þegar forritið er þýtt flettir keyrslukerfið upp hvaða aðferð skuli keyrð á því augnabliki sem skilaboðin eru send.
Þessi kvika nálgun gerir mögulegt að breyta eða bæta við aðferðum við keyrslu og senda skilaboð til hluta sem ekki er vitað fyrir fram af hvaða tegund eru. Hún veitir mikinn sveigjanleika og er grunnurinn að eiginleikum á borð við categories. Á hinn bóginn uppgötvast ákveðnar villur aðeins við keyrslu. Skilaboð sem send eru til nil-hlutar gera auk þess ekkert í stað þess að valda villu.
Objective-C fyrir byrjendur
Objective-C er forritunarmál sem er notað til að búa til öpp, sérstaklega fyrir vörur frá Apple á borð við iPhone og iPad. Hugsaðu um það sem safn fyrirmæla sem segja tölvu hvað hún á að gera. Mörg öpp, sérstaklega eldri öpp, hafa verið búin til með Objective-C, þótt flest ný öpp séu skrifuð í Swift. Það er svolítið eins og að byggja hús, þar sem Objective-C leggur til byggingareiningarnar og verkfærin sem forritarar nota til að búa til þá eiginleika og hönnun sem fólk sér og notar. Þótt það sé eldra mál er það enn mikilvægt vegna þess að mörg fyrirliggjandi öpp eru smíðuð með því og það vinnur vel með nýrri tækni Apple.