- Objective-C on olio-ohjelmointikieli, joka luotiin C-kielen laajennuksena ja jota on käytetty vuosikymmeniä Applen sovellusten kehityksessä.
- Se erottuu edukseen joustavuudellaan, C-koodin ja olio-ohjelmoinnin yhdistelmällä, yhteensopivuudellaan vanhojen API-rajapintojen ja -kehysten kanssa sekä dynaamisella viestintäjärjestelmällään.
- Se toimii tällä hetkellä rinnakkain Swiftin kanssa Applen projekteissa ja on edelleen välttämätön vanhojen sovellusten ja kirjastojen ylläpidon ja yhteentoimivuuden kannalta.

Objective-C on yksi niistä ohjelmointikielistä, jotka, vaikka Swiftin nousu onkin viime aikoina jäänyt jonkin verran varjoon, ovat edelleen elintärkeä työkalu Applen järjestelmien ohjelmoinnin historiassa ja nykyhetkessä. Jos olet kuullut sovellusten luomisesta iOS:lle tai macOS:lle , olet melkein varmasti törmännyt tähän kieleen, sillä se on ollut Applen ekosysteemin kehityksen kulmakivi yli kahden vuosikymmenen ajan.
Tässä artikkelissa tutkimme kaikkea, mitä sinun tarvitsee tietää ymmärtääksesi Objective-C:tä : sen erottuvimmat ominaisuudet, alkuperän, nykyiset käyttökohteet ja miten se vertautuu vaihtoehtoihin, kuten Swiftiin. Näet myös käytännön esimerkkejä, jotka auttavat sinua ymmärtämään sen syntaksia, rakennetta ja ominaisuuksia sekä muistinhallinnan keskeisiä näkökohtia, olio-ohjelmointimallia, protokollia ja paljon muuta. Valmistaudu, sillä aiomme perehtyä tämän kiehtovan kielen jokaiseen kolkkaan.
Mikä on Objective-C?
Objective-C on olio-ohjelmointikieli, joka on suunniteltu laajentamaan C-kieltä ja antamaan sille oliopohjaisille kielille, erityisesti Smalltalkin inspiroimille kielille, tyypillisiä ominaisuuksia. Sen juuret ulottuvat 1980-luvulle Brad Coxin ja StepStone Corporationin ansiosta. Tavoitteena oli tarjota C:lle Smalltalk-tyylinen viestintäjärjestelmä, joka mahdollistaisi suuremman joustavuuden ja modulaarisuuden ohjelmoinnissa.
Toisin kuin puhdas C , Objective-C mahdollistaa objektien luomisen ja käsittelyn, mikä tarkoittaa, että voit jäsentää koodisi entiteettien ympärille, joilla on sekä dataa että niihin liittyviä funktioita. Tämä on erityisen hyödyllistä monimutkaisten sovellusten kehittämisessä, koska se edistää koodin organisointia, uudelleenkäyttöä ja ylläpidettävyyttä.
Yksi Objective-C:n suurimmista saavutuksista on, että sen syntaksi ja toiminta mahdollistavat C-kielellä kirjoitetun koodin yhdistämisen oliopohjaisiin toimintoihin , mikä helpottaa siirtymistä olemassa olevista C-projekteista uusien, paljon edistyneempien ominaisuuksien integrointiin.
Objective-C:n historia ja kehitys
Objective-C:n juuret ulottuvat 80-luvulle, jolloin StepStonen ohjelmistokehittäjät Brad Cox ja Tom Love tunnistivat tarpeen lisätä C:hen ominaisuuksia, jotka muistuttavat Smalltalkin ominaisuuksia. Smalltalk oli tuolloin johtava olio-ohjelmoinnin kieli. Heidän tarkoituksenaan oli yhdistää C:n teho, nopeus ja suosio Smalltalkin joustavuuteen luoden hybridikielen, joka tarjoaisi molempien maailmojen parhaat puolet.
Alkuperäinen versio julkaistiin vuonna 1984, ja sitä ottivat myöhemmin käyttöön yritykset, kuten NeXT, jonka Steve Jobs perusti lähdettyään väliaikaisesti Applelta. NeXT integroi Objective-C: n NeXTSTEP-käyttöjärjestelmänsä pääkieleksi, mikä loi pohjan myöhemmin macOS:lle ja iOS:lle, kun Apple osti NeXT:n 90-luvun lopulla.
Siitä lähtien, ja lähes kolmenkymmenen vuoden ajan, Objective-C on ollut kiistaton standardi ohjelmistojen kehittämisessä Applen käyttöjärjestelmissä. Vuonna 2014 Apple ilmoitti Swiftistä uudeksi sovelluskehityksen referenssikielekseen, mutta Objective-C on pysynyt olennaisena osana ekosysteemiä, erityisesti olemassa olevien sovellusten ylläpidossa ja vanhojen API-rajapintojen ja kehysten käytössä, joita ei ole vielä siirretty.
Vaikka Swift hallitseekin uusien sovellusten kehitystä, Objective-C on edelleen välttämätön tiimeille, jotka työskentelevät vanhempien koodipohjien ja Swiftille soveltumattomien frameworkien parissa, sekä siltana tietyille alustojen välisille projekteille.
Mihin Objective-C:tä käytetään?
Objective-C erottuu erityisesti Applen ensisijaisena ohjelmointikielenä macOS- ja iOS-käyttöjärjestelmissä sekä sen suosituimmissa natiiveissa kehyksissä: Cocoassa ja Cocoa Touchissa. Macin graafisesta käyttöliittymästä monimutkaisimpiin mobiilisovelluksiin iPhonella ja iPadilla, Objective-C on helpottanut vankan, tehokkaan ja helposti ylläpidettävän ohjelmiston luomista.
Yksi sen tärkeimmistä eduista on, että se mahdollistaa C-koodin ja olio-ohjelmoinnin yhdistämisen , mikä mahdollistaa C-kirjastojen käytön nykyaikaisissa projekteissa, mikä on erityisen hyödyllistä sovelluksissa, jotka vaativat maksimaalista suorituskykyä tai integrointia vanhan koodin kanssa.
Joitakin Objective-C:n näkyvimpiä käyttötarkoituksia ovat:
- Natiivisovelluskehitys iOS:lle ja macOS:lle: Vielä nykyäänkin suuri osa App Storen sovelluksista on kirjoitettu osittain tai kokonaan Objective-C:llä.
- Vanhojen Apple-rajapintojen käyttö: Monet järjestelmän ominaisuudet ovat saatavilla vain tällä kielellä, mikä tekee siitä välttämättömän pitkäaikaisten projektien ylläpidossa ja parantamisessa.
- Kehykset ja omat kirjastot: On yleistä, että suuret kehitystiimit ylläpitävät edelleen Objective-C-kirjastoja tehokkuuden ja yhteensopivuuden takaamiseksi.
- Yhteensopivuus GNUstepin ja muiden alustojen kanssa: Applen lisäksi muut toteutukset, kuten GNUstep, mahdollistavat Objective-C:n käytön muissa kuin Applen järjestelmissä.
Objective-C:n pääominaisuudet
Objective-C tarjoaa useita ominaisuuksia, joita ohjelmoijat, erityisesti C-kielen maailmasta tulevat, arvostavat suuresti. Alla tarkastelemme tärkeimpiä ominaisuuksia ymmärtääksemme, mikä tekee siitä ainutlaatuisen muihin ohjelmointikieliin verrattuna:
- Oliopohjainen kieli: Kaikki pyörii olioiden ympärillä, mikä mahdollistaa luokkien määrittelyn, periytymisen, polymorfismin ja kapseloinnin sekä selkeän koodijaon.
- C:n superjoukko: Se säilyttää kaikki C:n toiminnallisuudet ja mahdollistaa perinteisten käskykokonaisuuksien (kuten
while,for,do-while) ja käsitellä alkeellista dataa objektien rinnalla. - Smalltalk-tyylinen viestintä: Metodien kutsuminen suoritetaan lähettämällä viestejä objekteille, mikä tarjoaa kehitykseen suurta joustavuutta ja dynaamisuutta.
- Eksplisiittinen muistinhallinta: Toisin kuin nykyaikaisissa ohjelmointikielissä, joissa on automaattinen muistinhallinta, Objective-C vaatii ohjelmoijaa hallitsemaan jokaisen objektin luomista ja vapauttamista, vaikka ARC:n (Automatic Reference Counting) myötä tätä tehtävää on yksinkertaistettu merkittävästi vuodesta 2011 lähtien.
- C-kirjaston tuki: Sen avulla voit käyttää uudelleen C-kielellä kirjoitettuja kirjastoja, mikä helpottaa vanhan koodin integrointia ja parantaa suorituskykyä tarvittaessa.
- Tuki protokollille ja luokille: Voit määritellä abstrakteja rajapintoja protokollien avulla ja lisätä metodeja olemassa oleviin luokkiin luokkien avulla.
Objective-C:n perussyntaksi ja rakenteet
Objective-C:n syntaksi on yksi sen määrittelevistä ominaisuuksista, ja vaikka se saattaa ensi silmäyksellä vaikuttaa oudolta (etenkin viestien lähettämisen sulkeiden merkintätapa), se on varsin looginen ja suoraviivainen, kun siihen tottuu. Tässä on katsaus keskeisiin elementteihin:
- Muuttujien ja alkeistyyppien deklarointi: Aivan kuten C:ssä, voit deklaroida yksinkertaisia muuttujia, kuten
int,floatocharObjektien kohdalla käytetään tähteä muuttujan nimen edessä (MyClass *objeto;). - Viestien lähettäminen: Objektin metodin kutsumiseen käytetään sulkeiden syntaksia:
; - Luokat ja menetelmät: Luokan määrittelyyn tarvitaan kaksi tiedostoa: rajapinta (
.h) ja toteutus (.m). Direktiivejä käytetään@interfacey@implementation. - ominaisuudet: Ne määritellään
@propertyja niihin yleensä liittyy@synthesizetoteuttaa getter- ja setter-metodit automaattisesti. - Flunssantorjunta: Klassiset C-lauseet ovat läsnä:
if,else,switch,while,for. - Kokoelmatyypit: On olemassa objekteja listoille (NSArray, NSMutableArray), sanakirjoille (NSDictionary, NSMutableDictionary) ja joukoille (NSSet, NSMutableSet).
Tämä järjestelmä antaa kehittäjille mahdollisuuden periä osan C-logiikasta, mutta lisää abstraktion ja modulaarisuuden kerroksen, jota arvostetaan suuresti suurissa projekteissa.
Käytännön esimerkki: Hei maailma Objective-C:ssä
Katsotaanpa, miltä näyttäisi Objective-C:n yksinkertainen esimerkki "Hello World" -komennon tulostamisesta konsolille:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hola Mundo");
}
return 0;
}
Tässä fragmentissa näemme useita elementtejä:
- #tuoda : Tuo Applen ydinobjektikehyksen.
- @autoreleasepool: Tarpeellinen objektimuistin hallinnalle, erityisesti silloin, kun ARC:tä ei käytetä.
- NSLog: Funktio, joka näyttää tietoja konsolissa, vastaa
printfC-kielellä, mutta mukautettu Objective-C:hen.
Olio-orientoitunut paradigma Objective-C:ssä
Objective-C omaksuu täysin olio-ohjelmoinnin paradigman , jonka avulla voit työskennellä luokkien, olioiden, periytymisen, kapseloinnin ja polymorfismin kanssa. Jokainen luokka voi määritellä instanssimuuttujia, omia metodejaan ja ominaisuuksiaan, ja sitä voidaan laajentaa alaluokkien avulla periytyvien ja muokattavien toimintojen avulla.
Lisäksi ainutlaatuinen ominaisuus on kyky lähettää viestejä dynaamisesti objekteille, mikä suosii erittäin joustavien ja ajonaikaisesti mukautuvien ohjelmien kehittämistä – ajatus, joka on peritty suoraan Smalltalkilta.
Huomionarvoista on myös kyky järjestää koodia luokkien avulla , jotka mahdollistavat lisätoimintojen lisäämisen olemassa oleviin luokkiin ilman alaluokkien luomista, ja protokollien avulla , jotka mahdollistavat metodisopimusten määrittelyn, joita luokat voivat omaksua, samalla tavalla kuin muiden kielten rajapinnoissa.
Luokat ja laajennukset Objective-C:ssä
Kategoriat ovat yksi tehokkaimmista työkaluista luokan toiminnallisuuden laajentamiseen ilman alkuperäisen koodin muokkaamista tai alaluokkien luomista. Niiden avulla voit lisätä ylimääräisiä metodeja mihin tahansa luokkaan, vaikka sinulla ei olisikaan pääsyä sen toteutukseen, mikä on erittäin hyödyllistä suurten koodikantojen järjestämisessä tai yksityisten toimintojen toteuttamisessa.
Laajennukset (tai ”luokkalaajennukset”) puolestaan palvelevat yksityisten metodien ja ominaisuuksien määrittämistä itse luokan toteutuksessa, mikä mahdollistaa sisäisten yksityiskohtien paremman kapseloinnin ja piilottamisen.
Protokollat Objective-C:ssä
Protokollat toimivat abstrakteina sopimuksina , jotka määrittelevät metodit, joita luokat voivat omaksua ja toteuttaa. Näin ollen mikä tahansa luokka voi ilmoittaa sitoutuvansa tiettyyn protokollaan ja sitoutua sen metodien toteuttamiseen. Tämä tarjoaa suurta joustavuutta ja auttaa täyttämään iOS- ja macOS-sovelluskehityksessä yleisiä malleja, kuten delegointia.
Protokolla voi esimerkiksi määrittää menetelmiä, kuten turnOnEngine o beNiceToSister:, ja eri luokat voisivat ottaa käyttöön nämä protokollat, jos ne ovat kiinnostuneita kyseisestä toiminnallisuudesta.
Muistinhallinta: säilytys, vapautus ja ARC
Objective-C:ssä muistinhallinta on perinteisesti ollut yksi ohjelmoijien suurimmista haasteista . Ennen ARC:n ( Automatic Reference Counting ) keksimistä jokaisen objektin säilytystä ja vapautusta piti hallita manuaalisesti, mikä lisäsi muistivuotojen ja vaikeasti havaittavien virheiden riskiä.
Perussykli koostuu:
- Luo objekti (
alloc). - Käytä kohdetta.
- Vapauta esine (
releaseoautorelease).
ARC:n myötä, joka sisällytettiin Xcode 4.2:een ja iOS 4:ään, kääntäjä lisää automaattisesti retain- , release- ja autoreslease -käskyt , mikä yksinkertaistaa kehittäjän elämää huomattavasti ja tuo Objective-C:n lähemmäksi muiden kielten roskienkeruukokemusta.
Ominaisuudet ja attribuutit: pääsynhallinta ja muisti
Las Objective-C:n ominaisuudet on julistanut @property ja sen hallintaa vahvistetaan erilaisilla ominaisuuksilla, jotka ohjaavat sitä, miten kukin arvo tallennetaan ja sitä käytetään. Tärkeimmät ominaisuudet ovat:
- määrittää: Asettaa arvon suoraan säilyttämättä tai vapauttamatta objektia (käytetään yleensä alkeellistyypeissä tai heikoissa viittauksissa).
- säilyttää: Ylläpitää vahvaa viittausta objektiin ja kasvattaa laskuria joka kerta, kun se osoitetaan.
- kopio: Luo kopion määritetystä objektista, hyödyllinen tekstimerkkijonoille tai muuttumattomille objekteille.
- heikko: ARC:n kanssa esitelty, määrittelee heikon viitteen, joka asetetaan automaattisesti arvoon
nilkun alkuperäinen objekti vapautetaan. - vahva: Vahva viittaus varmistaa, että niin kauan kuin ominaisuus on olemassa, objekti on käytettävissä muistissa.
Tämä tarkkuus antaa kehittäjille mahdollisuuden optimoida resurssien kulutusta ja välttää muistin käyttövirheitä.
Vertailu: Objective-C vs. Swift
Vuodesta 2014 lähtien Applen ekosysteemin kehitystä on leimannut Objective-C:n ja Swiftin rinnakkaiselo . Molemmilla kielillä on vahvuutensa ja heikkoutensa, ja valinta riippuu vahvasti projektin tyypistä ja kehitystiimin kokemuksesta.
Objective-C:n tärkeimpiä etuja ovat :
- Suora yhteensopivuus C:n ja C++:n kanssa: Sen avulla voit yhdistää välttämätöntä ja oliopohjaista koodia, mikä on erittäin arvostettua sovelluksissa, jotka vaativat raakaa suorituskykyä.
- Kypsyys ja vakaus: Se on kieli, jota on testattu vuosia, ja jolla on suuri yhteisö ja runsas dokumentaatio.
- Dynamiikka: Sen viestintä- ja heijastusjärjestelmän avulla voit muokata sovellusten toimintaa ajonaikana.
Swift puolestaan osallistuu:
- Paremmat turvallisuustakuut: Staattisen tyypityksen, virheenkäsittelyn ja modernin muistinhallinnan ansiosta.
- Selkeämpi ja ytimekkäämpi syntaksi: Se helpottaa koodin kirjoittamista ja ylläpitoa, erityisesti niille, jotka eivät tule C-maailmasta.
- Nykyaikaiset työkalut: Erinomainen tuki nimiavaruuksille, interaktiiviselle kehitykselle Playgroundsin avulla ja toiminnallisille malleille.
Tulevaisuudessa kaikki viittaa siihen, että Swift jatkaa jalansijaa, mutta Objective-C pysyy merkityksellisenä suurissa perinteisissä projekteissa ja yhteentoimivuudessa vanhempien kehysten kanssa.
Objective-C:n ja Swiftin edut ja haitat
On syytä tarkastella joitakin keskeisiä kohtia, jotka voivat vaikuttaa yhden tai toisen kielen valintaan:
- Tavoite-C:
- Mahdollistaa tehokkaan työskentelyn C- ja C++-kirjastojen kanssa.
- Se tarjoaa dynaamisia ominaisuuksia, kuten metodien swizzlingin, joiden avulla voit muokata käyttäytymistä ajonaikana.
- Yhteensopiva olemassa olevien binäärikehysten ja kolmansien osapuolten kirjastojen kanssa.
- Sillä on kuitenkin pieni nimiavaruus, mikä voi johtaa konflikteihin suurissa projekteissa ja vaikeasti debugattaviin virheisiin.
- Syntaksi saattaa vaikuttaa monimutkaiselta ja vanhentuneelta uusille ohjelmoijille.
- Nopea:
- Staattinen tyypitys ja moderni syntaksi lisäävät tietoturvaa ja tuottavuutta.
- Edistynyt tuki toiminnallisille malleille ja interaktiiviselle koodinhallinnalle Playgroundsin avulla.
- Hitaampi käännös suurissa projekteissa ja jonkin verran epävakautta moduulimuodoissa tai yhteensopivuudessa C++:n kanssa.
Käytännön perusteet ja koodiesimerkkejä
Niille, jotka ovat uusia Objective-C:n kanssa, voi olla hyödyllistä tarkastella joitakin käytännön esimerkkejä sen käytöstä tosielämän projekteissa. Tässä on joitakin keskeisiä rakenteita ja käsitteitä:
Luokkien ja metodien määrittely
// Archivo de cabecera: MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@property int contador;
- (void)incrementar;
@end
// Archivo de implementación: MyClass.m
#import "MyClass.h"
@implementation MyClass
- (void)incrementar {
self.contador++;
}
@end
Tässä esimerkissä MyClass perii NSObject- luokasta , joka on useimpien Cocoa-objektien juuriluokka.
Taulukoiden ja sanakirjojen käyttö
NSArray *array = @;
NSString *elemento = array; // "dos"
NSDictionary *diccionario = @{ @"clave1": @"valor1", @"clave2": @"valor2" };
NSString *valor = diccionario; // "valor1"
Silmukat ja ohjausrakenteet
for (int i = 0; i < 5; i++) { NSLog(@"Iteración %d", i); } if (array.count > 2) {
NSLog(@"El array tiene más de dos elementos");
}
Klassinen muistinhallinta (ilman ARC:tä)
MyClass *objeto = init];
// Se usa el objeto
; // Liberar cuando termine de usarse
Yhteensopivuus ja tuetut alustat
Vaikka Objective-C on erottamaton osa Applen ekosysteemiä, toteutukset, kuten GNUstep, mahdollistavat kehityksen tällä kielellä muilla alustoilla, kuten Linuxissa ja Windowsissa. Sen käyttö macOS- ja iOS-ympäristöjen ulkopuolella on kuitenkin hyvin rajallista ja yleensä sidottu niche-projekteihin tai yhteentoimivuuteen vanhan koodin kanssa. Mikä on Objective-C?
Applen sisällä Objective-C:tä tuetaan edelleen kaikissa macOS:n, iOS:n, iPadOS:n, tvOS:n ja watchOS:n moderneissa versioissa, ja se on käyttökelpoinen vaihtoehto sekä Xcodessa että komentorivityökaluissa.
Objective-C-resurssit ja oppiminen
Niille, jotka haluavat oppia tai parantaa Objective-C-taitojaan, on tarjolla runsaasti materiaaleja, opetusohjelmia ja verkkokursseja. Yliopistoalustoista ja teknisistä oppilaitoksista videokanaviin ja Applen viralliseen dokumentaatioon, oppiminen on helppoa ja monipuolista. Opi, kuinka sinusta tulee menestyvä mobiilisovelluskehittäjä.
Yleisimpiä koulutusvaihtoehtoja ovat:
- Selittäviä videoita.
- E-kirjoja ja käytännön oppaita.
- Vaiheittaiset ohjeet, sekä tekstinä että videona.
- Verkkokehittäjäyhteisöt ja tekniset foorumit.
- Kursseja erikoistuneilla alustoilla aina perustasolta edistyneille tasoille.
Lisäksi monet näistä alustoista tarjoavat sertifikaatteja koulutusohjelmansa suorittaneille, mikä voi olla etu alan työtä haettaessa.
Miksi opetella Objective-C:tä tänään?
Objective-C:n oppiminen saattaa tuntua nykyään turhalta, varsinkin jos päätavoitteesi on aloittaa uusia projekteja. Sen hallitseminen on kuitenkin edelleen erittäin suositeltavaa , jos aiot työskennellä yrityksissä, joissa on vanhoja koodikantoja, ylläpitää jo tuotannossa olevia sovelluksia tai jos olet kiinnostunut Applen alustojen toiminnasta. Objective-C:n yhteensopivuus Swiftin kanssa mahdollistaa molempien kielten rinnakkaiselon samassa projektissa, mikä helpottaa sovellusten asteittaista migraatiota ilman, että kaikkea tarvitsee rakentaa uudelleen alusta alkaen.
Lisäksi se, että Objective-C on edelleen tekninen vertailukohta monissa iOS- ja macOS-kehityksen osa-alueissa, takaa sen merkityksen työmarkkinoilla, erityisesti ylemmän johdon tehtävissä ja arkkitehtuuri- tai teknisen johdon tehtävissä.
Tämän matkan aikana olet nähnyt, kuinka Objective-C-kieli on ollut käännekohta Applen ohjelmistokehityksessä ja kuinka sen filosofia, joka perustuu C:n laajentamiseen ja oliopohjaisten paradigmojen sisällyttämiseen, on mahdollistanut vankkojen, joustavien ja erittäin mukautuvien sovellusten luomisen. Vaikka Swiftin suosio on jonkin verran syrjäyttänyt sen käyttöä, Objective-C:n hallitseminen on edelleen olennainen osa jokaista kehittäjää, joka haluaa navigoida Applen ekosysteemissä helposti ja ratkaista modernin ohjelmoinnin ja suurten projektien ylläpidon haasteet. Olipa kyse sitten yhteensopivuussyistä, vanhoista arkkitehtuureista tai yksinkertaisesti teknisestä uteliaisuudesta, Objective-C:n oppiminen avaa oven kuluttajatietojenkäsittelyn historiaan ja nykypäivään.
Indeksi
- 1 Mikä on Objective-C?
- 2 Objective-C:n historia ja kehitys
- 3 Mihin Objective-C:tä käytetään?
- 4 Objective-C:n pääominaisuudet
- 5 Objective-C:n perussyntaksi ja rakenteet
- 6 Käytännön esimerkki: Hei maailma Objective-C:ssä
- 7 Olio-orientoitunut paradigma Objective-C:ssä
- 8 Luokat ja laajennukset Objective-C:ssä
- 9 Protokollat Objective-C:ssä
- 10 Muistinhallinta: säilytys, vapautus ja ARC
- 11 Ominaisuudet ja attribuutit: pääsynhallinta ja muisti
- 12 Vertailu: Objective-C vs. Swift
- 13 Objective-C:n ja Swiftin edut ja haitat
- 14 Käytännön perusteet ja koodiesimerkkejä
- 15 Yhteensopivuus ja tuetut alustat
- 16 Objective-C-resurssit ja oppiminen
- 17 Miksi opetella Objective-C:tä tänään?
