Objective-C: Objekt med enkel metod

I Objective-C särskiljer man på .h och .m filer. .h-filer innehåller gränssnitt till objekt, kallade interface. .m-filer innehåller implementationen av gränssnittet, kallad implementation. Det är precis enligt den gängse litteraturen! För en gångs skull! (Vanligare i programspråk är namnen ”klassdeklaration” eller ”typdeklaration” för .h-filens innehåll, och ”definition” för .m-filens innehåll)

Nåväl, jag ska exemplifiera dessa begrepp genom att visa ett minimalt objekt Simple. Simple innehåller bara ett meddelande ”Hello”, som inte tar några argument och inte heller returnerar något värde. Det enda Hello gör är att skriva ut ”Hello” med hjälp av printf.

Vi börjar med .m-filen, alltså implementationen:


@implementation Simple
-(void)Hello {
    printf(@"Hello!");
}
@end

Själva innehållet omsluts allstå av @implementation … @end. Objektnamnet följer direkt efter implementation, och sedan raddas meddelandeimplementationerna upp.

I vårat fall har vi bara meddelandet Hello. Hello returnerar inte något värde, därför skriver man -(void) före namnet. ‘void’ har alltså samma betydelse i ObjC som i vanlig C/C++. Minustecknet betecknar meddelandets början.

Därefter skrivs meddelandekroppen inom måsvingar, och vi skriver dit våran printf().

Vi vänder oss till .h-filen, som är något mer komplicerad.

@interface Simple : NSObject {
}

-(void)Hello;

@end

Även i detta fall används snabela och två nyckelord för att omsluta informationen: @interface .. @end.

Notera att efter Simple står det kolon NSObject. Detta betyder att Simple baseras på objektet NSObjekt, vanligt objektorienterat arv alltså.

De ensamna måsvingarna därefter betyder inget i detta exempel; däri ska man lägga medlemsvariabler för objektet, men några sådana har inte Simple.

Sedan kommer Hello som skrivs väldigt likt .m filen och precis som i C/C++ avslutas raden med semikolon.

Taggar: ,

2 kommentarer till Objective-C: Objekt med enkel metod

  1. Lasse skriver:

    Nja, du förklarar en del saker men hoppar över andra.

    ”Även i detta fall används snabela och två nyckelord för att omsluta informationen: @interface .. @end.”

    Du använder även snabela framför strängen @”Hello!”, och sen en viktig del är nog ändå att förklara vad minustecknet gör (medlemsmetod).

  2. Olofb skriver:

    Lasse; Tack för info!

    Jag gav upp mina Objective-C ambitioner förra sommaren då jag tyckte tröskeln var för hög att kliva uppför. Plus att jag var (och är) ovan Mac-användare så allt kändes onödigt tungjobbat.

    Nu blir det mest Python för min del på fritiden😉

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: