Objective-C Succinctly Introduktion

Objective-C är programmeringsspråket bakom inbyggda Apple-applikationer. Språket var ursprungligen utformat på 1980-talet som ett sätt att lägga till objektorienterade möjligheter till ANSI C-programmeringsspråket, och det har sedan dess använts för att skapa allt från kommandoradsverktyg till Mac-program till mobilappar. Du kan tänka på Objective-C som Apples version av C # programmeringsspråket.

Att lära sig Objective-C är dock bara en aspekt av iPhone, iPad och Mac app utveckling. Ovanpå språket ligger en handfull ramar som ger verktygen nödvändiga för att skapa appar för någon av dessa plattformar. UIKit-ramverket definierar till exempel de grundläggande gränssnittskomponenterna som du ser på din iPhone (knappar, listor, bilder, etc.), medan Core Data Framework tillhandahåller ett API för att spara och hämta data från en enhet. Objective-C är limet som låter dig dra ihop dessa verktyg och montera dem i ett användbart program.

Mål-C sammanför aspekter av flera ramar

Objective-C Succinctly är den första delen i en tvådels serie om Apples apputveckling. I denna serie utforskar vi hela Objective-C-språket med hjälp av praktiska exempel. Vi kommer att fokusera på att lära in kärnsprogskoncept genom att bygga kommandoradsverktyg, vilket innebär att vi vana bygga grafiska applikationer i den här boken. Detta ligger till grund för IOS Succinctly, som utforskar iOS-ramen som ligger bakom iPhone och iPad-appar. Båda böckerna använder Xcode, Apples officiella integrerade utvecklingsmiljö.


Mål-C-språket

För utvecklare som kommer från en C # -bakgrund behåller Objective-C många av samma arbetsflöden och objektorienterade koncept. Du skriver fortfarande kod, kompilerar den till en körbar och använder självklart objekt för att organisera din ansökan. Objective-C tillhandahåller standardobjektorienterade konstruktioner som gränssnitt, klasser, klass / instansmetoder och accessorer. Det sägs att det finns några viktiga skillnader mellan mål-C och språk som C ++ och C #.

person.sayHello (); // C # metodanrop. [person säga hej]; // Objektiv-C-sändning av meddelanden.

Det första du märker är att Objective-C använder en helt annan syntax för att kommunicera mellan objekt. Jämför exempelvis metod kallar syntax av C # till meddelandet skickar syntax av mål-C:

Istället för att ringa en metod som är bunden till ett objekt, skickar objektiv-C "meddelanden" från objekt till objekt med användning av kvadratkonsolnotationen. För de flesta praktiska ändamål kan du närma sig meddelande som skickas som metodanrop, och vi använder villkoren utbytbart om det inte leder till förvirring.

För det andra är mål-C utformad för att vara en superset av C, vilket betyder att det är möjligt att kompilera C-kod med någon Objective-C-kompilator. Det betyder också att du kan kombinera objektiv-C och C i samma projekt eller till och med i samma fil. Dessutom lägger de flesta moderna kompilatorer C ++ till mixen, så det är faktiskt möjligt att blanda Objective-C, C ++ och C i en enda fil. Detta kan vara mycket förvirrande för nybörjare till Objective-C, men det gör också hela C / C ++-ekosystemet tillgängligt för Mac och iOS-appar.

Vi undersöker dessa skillnader och mycket mer hela tiden Objective-C Succinctly.


Provkod

Du kommer lära dig mer från den här boken om du återskapar proverna med hjälp av koden i boken.

En vald uppsättning prover som använder koden som finns i boken är tillgänglig online. Dessa prov är nödvändiga för att förstå mål-C. Dessa prover är tillgängliga för nedladdning från https://bitbucket.org/syncfusion/objective_c_succinctly. Prover som gäller för specifika avsnitt nämns i det avsnitt de tillämpar, med följande format:

Inkluderat kodprov: namnet på provmappen


Inställning

Det finns ett antal kompilatorer för Objective-C, men den här boken kommer att fokusera på Xcode IDE, som kommer med en kompilator, textredigerare, debugger, gränssnittredigerare och allt annat du behöver för att skapa iOS-appar i ett bekvämt paket. När du skriver detta är Xcode bara tillgängligt för OS X, så du måste vara på en Mac innan du kan köra någon av koden i den här boken.

Vi börjar med att gå igenom installationen av Xcode, och sedan lär vi oss hur du skapar en applikation och utforskar några av de främsta funktionerna i IDE.


Installation

Xcode-logotypen i Mac App Store

Xcode kan laddas ner från Mac App Store. Navigera till länken eller sök efter Xcode i Mac App Store, och klicka sedan på Fri i övre vänstra hörnet för att starta nedladdningen. Xcode-appen är ganska stor, så det tar minst några minuter att ladda ner. Om du inte är säker på om nedladdningen fungerar kan du kontrollera dess status i inköp fliken i Mac App Store:

Fliken Inköp i Mac App Store

Bläddra ner för att hitta Xcode-hämtningen och du bör se en statusfält som anger hur långt det är. När nedladdningen är klar ska installationen vara enkel och du bör (förhoppningsvis) se en välkomstskärm när du startar programmet.

Xcode välkomstskärmen

Skapa en applikation

Vår första mål-C-ansökan kommer att vara en enkel kommandorad "Hej, Värld!" program. För att skapa Xcode-projektet klickar du på Skapa ett nytt Xcode-projekt på välkomstskärmen. Som ett alternativ kan du också välja Fil > Ny > Projekt... Detta ger dig möjlighet att välja en projektmall. Som du kan se är mallar kategoriserade som antingen iOS-appar eller Mac OS X-appar. I den andra delen av den här serien arbetar vi med flera av iOS-mallarna, men för tillfället ska vi hålla oss till den enkla Kommandoradsverktyg mall under Mac OS X > Ansökan:

Mac OS X-mallkategorier och ikonen för kommandoradsverktygsmall

Därefter bör du presentera några konfigurationsalternativ för ditt nya projekt. För produktnamn, använda sig av HelloObjectiveC. Om du planerade att distribuera detta program skulle du behöva förvärva en företagsidentifierare genom att registrera som en utvecklare med Apple, men eftersom det här är ett personligt projekt kan du använda edu.self. Detta tjänar som en unik namnrymd för ansökan. För Typ, Välj fundament (mer om detta senare), och var noga med att välja Använd automatisk referensräkning kryssrutan eftersom vi inte vill hantera minnet manuellt. Dina sista konfigurationsalternativ ska se ut som följer:

Konfigurationsalternativ för vårt nya projekt

Slutligen bör du kunna välja en plats för att spara ditt projekt. Spara det vart du vill, men avmarkera Källkontroll alternativ längst ner i fönstret. Detta skulle initiera ett Git-arkiv i din projektmapp, men vi arbetar med ett så litet projekt att vi inte behöver oroa oss för revisionskontroll.

Avmarkera alternativet Source Control

Efter att ha valt en plats för projektet och klickar på Skapa, Xcode skapar en ny mapp som heter HelloObjectiveC. I det borde du hitta annan HelloObjectiveC mapp som innehåller projektfilerna tillsammans med a HelloObjectiveC.xcodeproj mapp; Den senare fungerar dock mer som en fil än en mapp. HelloObjectiveC.xcodeproj definierar metadata för din applikation, såväl som lokala konfigurationsinställningar för IDE.

Den enda filen som du faktiskt behöver i en .xcodeproj mappen är project.pbxproj fil, som innehåller byggnadsinställningar och annan projektrelaterad information. Det vill säga om ditt projekt var under källkontroll, project.pbxproj är den enda filen i HelloObjectiveC.xcodeproj det skulle behöva vara under versionskontroll.

Dubbelklicka på HelloObjectiveC.xcodeproj mappen startar Xcode och öppnar projektet.


Lär känna Xcode IDE

Xcode är en stor applikation med många funktioner, och det har ett motsvarande komplext gränssnitt. Det är värt att ta dig tid att bekanta dig med de olika användargränssnittskomponenterna som markeras i följande skärmdump.

Huvudkomponenterna i Xcode IDE

Som du kan se är Xcode-gränssnittet uppdelat i tre huvudfönster: en projektnavigator (blå), en editor / arbetsområde (gul) och ett verktygsområde (lila). Navigatorn låter dig välja filer, hitta kodavbrott och felsöka ditt program. Redaktören är där du ska göra huvuddelen av ditt arbete - det är där du redigerar kod och, för grafiska applikationer, där du designar dina användargränssnitt och styr flödet av en app. Men igen för Objective-C Succinctly, Vi behöver inte något av gränssnittredigeringsverktygen. Slutligen kan du använda verktyget Område för att definiera alternativ för den valda komponenten (t.ex. de byggnadsmål som är associerade med en viss fil).

Du kan styra vilket av dessa fönster som är synliga med väljväljaren (grön) i övre högra hörnet. Det är emellertid inte möjligt att gömma arbetsområdet. Genom att klicka på mittknappen i vyväljaren visas ett utmatningsfönster där vi kan se loggdata för vår applikation.

Redigering av filer

Vår kommandoradsmall kommer med en enda Objective-C-fil, main.m. Extensionen .m används för filer som bara innehåller Objective-C-kod, och extensionen .mm är för filer med en mix av Objective-C och C, Objective-C och C ++ eller en kombination av alla tre. Att redigera main.m, välj det i navigeringspanelen och du ska se följande kod visas i redigeringsfönstret:

// // main.m // HelloObjectiveC // // Skapad av Ryan Hodson den 8/21/12. // Copyright (c) 2012 __MyCompanyName__. Alla rättigheter förbehållna. #importera  int main (int argc, const char * argv []) @ autoreleasepool // Infoga kod här ... NSLog (@ "Hej, Värld!");  returnera 0; 

Nästa kapitel ger en fördjupad förklaring till den här koden, men för nu är den enda viktiga saken NSLog () funktion, som matar ut en sträng till konsolen. Observera också att mål-C-strängar är prefixade med en @ symbol (som är de flesta konstruktioner som är exklusiva för mål-C), och de måste vara dubbla citerade.

Sammanställningskod

Inkluderat kodprov: HelloObjectiveC

För att kompilera den här koden och köra den resulterande körbaren klickar du bara på Springa knappen i det övre vänstra hörnet av IDE. Alternativt kan du välja Produkt > Springa i huvudmenyn, eller använd Cmd + R tangentbordsgenväg. Detta ska öppna utmatningspanelen längst ner på skärmen med en "Hej, Värld!" meddelande:

HelloObjectiveC loggutmatning

Sammanfattning

Och det är grunderna att installera Xcode IDE och använda den för att skapa och sammanställa ett Objective-C-projekt. Vi gjorde ingen kodning, men förhoppningsvis känner du dig mer bekväm med Xcode-gränssnittet och kan åtminstone navigera dig igenom ett projekts filer. I nästa kapitel börjar vi faktiskt skriva Objective-C-kod, definiera klasser, instansera objekt och skicka meddelanden till dem.

Denna lektion representerar ett kapitel från Objective-C Succinctly, en gratis eBook från laget vid Syncfusion.