Objective-C er eit objektorientert programmeringsspråk som legg til Smalltalk-stil meldingar til C-programmeringsspråket. Det var det primære programmeringsspråket brukt av Apple for utvikling av macOS og iOS fram til introduksjonen av Swift i 2014. Objective-C kombinerer effektiviteten og ytelsen til C med fleksibiliteten og dynamiske evner til Smalltalk, noko som gjer det godt eigna for utvikling av applikasjonar på Apples plattformer. Dens syntaks og struktur gjer det mogleg å lage komplekse applikasjonar samtidig som lesbarheit og enkel integrering med andre C-baserte språk blir oppretthaldt.
Objective-C blei oppretta tidleg på 1980-talet av Brad Cox og Tom Love hos Stepstone, eit programvareselskap. Motivasjonen bak opprettinga var å tilby ein meir fleksibel programmeringsmodell for utviklarar som bygde programvare for det voksande objektorienterte paradigmet. Språket blei utvikla ved å auke C med meldingskapasitetar liknande Smalltalk, noko som gjorde det mogleg med ein meir dynamisk tilnærming til programmering.
På slutten av 1980-talet adoptera NeXT Computer, grunnlagt av Steve Jobs, Objective-C for sitt NeXTSTEP-operativsystem, som var designa for å lette utvikling av applikasjonar i eit nettverksmiljø. Denne avgjerda skulle seinare gi stor avkastning då Apple kjøpte NeXT i 1997, noko som førte til at Objective-C blei grunnlaget for utvikling av macOS og iOS.
Til tross for introduksjonen av Swift i 2014, som blei designa for å vere ein tryggare og meir moderne erstatning for Objective-C, forblir sistnemnde ein viktig del av Apples økosystem. Mange eldre applikasjonar bruker framleis Objective-C, og det blir støtta saman med Swift i noverande utviklingsmiljø. Objective-C sin dynamiske runtime og meldingskapasitetar fortset å påverke designet av nyare språk og rammeverk.
Objective-C er fundamentalt objektorientert, og lar utviklarar definere klassar, objekt og metodar. Dette hjelper med å organisere og modularisere kode effektivt.
@interface MyClass : NSObject
- (void)myMethod;
@end
@implementation MyClass
- (void)myMethod {
NSLog(@"Hello from MyClass!");
}
@end
Objective-C tillèt dynamisk typing, som gjer det mogleg for variablar å halde objekt av ulike klassar ved kjøretid, noko som er nyttig for meir fleksible kode-mønster.
id myObject = [[MyClass alloc] init];
I staden for tradisjonelle funksjonskall, bruker Objective-C ein meldingssyntaks som liknar Smalltalk, som gjer det mogleg med meir dynamisk metodeoppløysing.
[myObject myMethod];
Kategorier lar utviklarar legge til metodar til eksisterande klassar utan å opprette underklassar. Dette er spesielt nyttig for å utvide tredjepartsbibliotek.
@interface NSString (MyCategory)
- (NSString *)reverseString;
@end
Protokollar i Objective-C er liknande grensesnitt i andre språk, og lar definere metodar som kan implementerast av kva som helst klasse.
@protocol MyProtocol
- (void)requiredMethod;
@end
Objective-C tilbyr ein eigenskap-funksjon som forenklar innkapsling av klassevariablar, og handterer getter- og setter-metodar automatisk.
@interface MyClass : NSObject
@property (nonatomic, strong) NSString *name;
@end
Språket bruker både manuell referansetelling (MRC) og automatisk referansetelling (ARC) for å handtere minne effektivt.
self.name = [[NSString alloc] initWithFormat:@"Hello"];
Objective-C støttar blokker, som er liknande closures i andre språk og lar inline funksjonsdefinisjon og utføring.
void (^myBlock)(void) = ^{
NSLog(@"Hello from Block!");
};
Objective-C tilbyr syntaktiske konstruksjonar som hjelper med vanlege programmeringsmønster, som kortfatta oppretting av array og ordbokliteral.
NSArray *array = @[@"One", @"Two", @"Three"];
Objective-C bruker eit unikt feilhåndteringssystem med NSError
, som lar metodar returnere feil utan å bruke unntak.
NSError *error = nil;
BOOL success = [myObject performActionWithError:&error];
Xcode er det primære integrerte utviklingsmiljøet (IDE) for Objective-C, og tilbyr eit robust sett med verktøy for utvikling, feilsøking og distribusjon av applikasjonar på Apple-plattformer. Det inkluderer ein visuell grensesnittbygger og omfattande dokumentasjon.
Objective-C-kode blir typisk kompilert med Clang-kompilatoren, som er ein del av LLVM-prosjektet. Clang tilbyr raske kompileringstider, gode feildiagnostikkar, og støttar dei nyaste standardane for C og Objective-C.
For å bygge eit prosjekt i Xcode, opprettar utviklarar eit nytt prosjekt, konfigurerer bygginnstillingar, og bruker Interface Builder for å designe UI-komponentar visuelt. Bygging og kjøring av applikasjonen kan gjerast direkte i Xcode med eit enkelt knappetrykk.
Objective-C blir primært brukt for å utvikle applikasjonar for macOS og iOS. Det er ryggraden i mange eldre applikasjonar og fortset å bli brukt i kombinasjon med Swift for moderne applikasjonar. Merkbare applikasjonar inkluderer:
Når ein samanliknar med relevante programmeringsspråk, har Objective-C sine unike styrker og svakheiter.
For å oversette Objective-C til andre språk, vurder følgjande:
Eksisterande kilde-til-kilde kodeoversettingsverktøy for Objective-C inkluderer: