Objectief-C bondig introductie

Objective-C is de programmeertaal achter native Apple-applicaties. De taal is oorspronkelijk ontworpen in de jaren 1980 als een manier om objectgeoriënteerde functies toe te voegen aan de ANSI C-programmeertaal en is sindsdien gebruikt om alles te creëren, van opdrachtregelprogramma's tot Mac-programma's tot mobiele apps. U kunt Objective-C zien als Apple's versie van de C # programmeertaal.

Het leren van Objective-C is echter slechts een aspect van de ontwikkeling van iPhone-, iPad- en Mac-apps. Bovenop de taal liggen een handvol frameworks die de tools bieden die nodig zijn om apps te bouwen voor elk van deze platforms. Het UIKit-framework definieert bijvoorbeeld de elementaire UI-componenten die u op uw iPhone ziet (knoppen, lijsten, afbeeldingen, etc.), terwijl het Core Data-framework een API biedt voor het opslaan en ophalen van gegevens van een apparaat. Objectief-C is de lijm waarmee je deze gereedschappen bij elkaar kunt trekken en ze kunt samenvoegen tot een nuttig programma.

Objectief-C samenvoeging van aspecten van verschillende kaders

Objectief-C bondig is de eerste aflevering in een tweedelige serie over Apple app-ontwikkeling. In deze serie verkennen we de volledige Objective-C-taal met behulp van praktische voorbeelden. We zullen ons concentreren op het leren van kernbegrippen door commandoregelhulpmiddelen te bouwen, wat wij betekent zal niet bouw grafische toepassingen in dit boek. Dit legt de basis voor iOS bondig, die het iOS-raamwerk onderzoekt dat ten grondslag ligt aan iPhone- en iPad-apps. Beide boeken maken gebruik van Xcode, de officiële, geïntegreerde ontwikkelomgeving van Apple.


De taal van doelstelling-C

Voor ontwikkelaars afkomstig van een C # -achtergrond behoudt Objectief-C veel van dezelfde werkstromen en objectgerichte concepten. Je schrijft nog steeds code, compileert het in een uitvoerbaar bestand en gebruikt natuurlijk objecten om je applicatie te organiseren. Objective-C biedt standaard objectgeoriënteerde constructies zoals interfaces, klassen, klasse / instantie methoden en accessors. Dat gezegd hebbende, er zijn een paar belangrijke verschillen tussen Objective-C en talen zoals C ++ en C #.

person.sayHello (); // C # methode aanroepen. [persoon zeg hallo]; // Objectief-C-berichtverzending.

Het eerste dat opvalt is dat Objective-C een geheel andere syntaxis gebruikt om te communiceren tussen objecten. Vergelijk bijvoorbeeld het methode bellen syntaxis van C # van de verzenden van berichten syntaxis van Objective-C:

In plaats van een methode te bellen die aan een object is gebonden, verzendt Objective-C "berichten" van object naar object met behulp van de notatie van de vierkante haakjes. Voor de meeste praktische doeleinden, kunt u het verzenden van berichten benaderen als methode calling, en zullen we de termen door elkaar gebruiken, tenzij het tot verwarring leidt.

Ten tweede is Objective-C ontworpen als een superset van C, wat betekent dat het mogelijk is om C-code te compileren met elke Objective-C-compiler. Dit betekent ook dat u Objective-C en C in hetzelfde project of zelfs in hetzelfde bestand kunt combineren. Bovendien voegen de meeste moderne compilers C ++ toe aan de mix, dus het is eigenlijk mogelijk om Objective-C, C ++ en C in een enkel bestand te mixen. Dit kan erg verwarrend zijn voor nieuwkomers in Objective-C, maar het maakt ook het hele C / C ++ ecosysteem toegankelijk voor Mac- en iOS-apps.

We zullen deze verschillen onderzoeken en nog veel meer Objectief-C bondig.


Voorbeeldcode

U zult meer leren van dit boek als u de voorbeelden opnieuw maakt met behulp van de code in het boek.

Een select aantal voorbeelden met de code in het boek is online beschikbaar. Deze voorbeelden zijn essentieel voor het begrijpen van Objective-C. Deze voorbeelden kunnen worden gedownload van https://bitbucket.org/syncfusion/objective_c_succinctly. Samples die van toepassing zijn op specifieke secties worden vermeld in de sectie die ze toepassen, in de volgende indeling:

Inclusief codevoorbeeld: naam van de voorbeeldmap


Opzetten

Er zijn een aantal compilers voor Objective-C, maar dit boek zal zich richten op de Xcode IDE, die wordt geleverd met een compiler, teksteditor, debugger, interface-editor en al het andere dat je nodig hebt om iOS-apps in een handig pakket te maken. Op het moment van schrijven is Xcode alleen beschikbaar voor OS X, dus je moet op een Mac staan ​​voordat je een code in dit boek kunt gebruiken.

We beginnen met het doorlopen van de installatie van Xcode, waarna we leren hoe we een applicatie kunnen maken en enkele van de opvallende kenmerken van de IDE kunnen verkennen..


Installatie

Het Xcode-logo in de Mac App Store

Xcode kan worden gedownload van de Mac App Store. Navigeer naar de link of zoek naar Xcode in de Mac App Store en klik vervolgens op Gratis in de linkerbovenhoek om het downloaden te starten. De Xcode-app is vrij groot, dus het zal minstens een paar minuten duren om te downloaden. Als u niet zeker weet of de download werkt, kunt u de status ervan controleren in de Aankopen tab van de Mac App Store:

Het tabblad Aankopen in de Mac App Store

Scrol omlaag om de Xcode-download te vinden en je zou een voortgangsbalk moeten zien die aangeeft hoe ver het is. Nadat de download is voltooid, moet de installatie eenvoudig zijn en moet u (hopelijk) een vriendelijk welkomstscherm zien wanneer u het programma start..

Het welkomstscherm van Xcode

Een applicatie maken

Onze eerste Objective-C-applicatie zal een eenvoudige opdrachtregel zijn "Hallo, Wereld!" programma. Klik op om het Xcode-project te maken Maak een nieuw Xcode-project in het welkomstscherm. Als alternatief kunt u ook selecteren het dossier > nieuwe > project... Dit geeft u de mogelijkheid om een ​​projectsjabloon te selecteren. Zoals u kunt zien, zijn sjablonen gecategoriseerd als iOS-apps of Mac OS X-apps. In het tweede deel van deze serie werken we met verschillende iOS-sjablonen, maar laten we het nu eenvoudig houden Commandoregeltool sjabloon onder Mac OS X > Toepassing:

Mac OS X-sjablooncategorieën en het sjabloonpictogram Opdrachtregelhulpmiddel

Vervolgens zou u enkele configuratie-opties voor uw nieuwe project moeten krijgen. Voor de productnaam, gebruik HelloObjectiveC. Als u van plan was dit programma te verspreiden, zou u een bedrijfsidentificatiecode moeten aanschaffen door u te registreren als ontwikkelaar bij Apple, maar aangezien dit een persoonlijk project is, kunt u edu.self. Dit dient als een unieke naamruimte voor de toepassing. Voor Type, kiezen fundament (meer hierover later), en zorg ervoor dat u de Gebruik automatische referentietelling selectievakje, omdat we het geheugen niet handmatig willen beheren. Uw uiteindelijke configuratie-opties moeten er als volgt uitzien:

Configuratie-opties voor ons nieuwe project

Ten slotte moet u een locatie kunnen selecteren om uw project op te slaan. Sla het op waar u maar wilt, maar maak de selectie ongedaan Bron controle optie onderin het venster. Dit zou een Git-repository initialiseren in je projectmap, maar we werken met zo'n klein project dat we ons geen zorgen hoeven te maken over revisiebeheer..

Deselecteren van de Source Control-optie

Na het selecteren van een locatie voor het project en klikken creëren, Xcode maakt een nieuwe map genaamd HelloObjectiveC. Daarin zou je moeten vinden een ander HelloObjectiveC map met de projectbestanden, samen met een HelloObjectiveC.xcodeproj map; deze laatste werkt echter meer als een bestand dan als een map. HelloObjectiveC.xcodeproj definieert de metadata voor uw toepassing, evenals de lokale configuratie-instellingen voor de IDE.

Het enige bestand dat je eigenlijk bent nodig hebben in een .xcodeproj map is de project.pbxproj bestand met build-instellingen en andere projectgerelateerde informatie. Dat wil zeggen, als uw project onder broncontrole stond, project.pbxproj is het enige bestand in HelloObjectiveC.xcodeproj dat zou onder versiebeheer moeten zijn.

Dubbelklikken op de HelloObjectiveC.xcodeproj map zal Xcode starten en het project openen.


Kennismaking met de Xcode IDE

Xcode is een grote applicatie met veel mogelijkheden en heeft een overeenkomstig complexe interface. Het is de moeite waard enige tijd te nemen om vertrouwd te raken met de verschillende UI-componenten die in de volgende schermafbeelding zijn gemarkeerd.

Hoofdcomponenten van de Xcode IDE

Zoals u kunt zien, is de Xcode-interface verdeeld in drie hoofdvensters: een projectnavigator (blauw), een editor / werkgebied (geel) en een hulpprogrammagebied (paars). Met de navigator kunt u bestanden selecteren, codebreuken opsporen en uw programma debuggen. In de editor voert u het grootste deel van uw werk uit. Hier bewerkt u code en voor grafische toepassingen ontwerpt u uw gebruikersinterfaces en beheert u de stroom van een app. Maar nogmaals, voor Objectief-C bondig, we hebben geen van de tools voor het bewerken van de interface nodig. Ten slotte kunt u in het gebied met hulpprogramma's opties definiëren voor de geselecteerde component (bijvoorbeeld de builddoelen die aan een bepaald bestand zijn gekoppeld).

U kunt bepalen welke van deze vensters zichtbaar zijn met behulp van de weergavekiezer (groen) in de rechterbovenhoek; het is echter niet mogelijk om het werkgebied te verbergen. Als u op de middelste knop klikt in de weergavekiezer, wordt een uitvoervenster weergegeven waarin we logboekgegevens voor onze toepassing kunnen bekijken.

Bestanden bewerken

Ons opdrachtregelsjabloon wordt geleverd met een enkel objectief-C-bestand, main.m. De extensie .m wordt gebruikt voor bestanden die alleen Objective-C-code bevatten, en de extensie .mm is voor bestanden met een combinatie van Objective-C en C, Objective-C en C ++, of een combinatie van alle drie. Aanpassen main.m, selecteer het in het navigatorpaneel en u zou de volgende code in het editorvenster moeten zien verschijnen:

// // main.m // HelloObjectiveC // // Gemaakt door Ryan Hodson op 21-8-2012. // Copyright (c) 2012 __MyCompanyName__. Alle rechten voorbehouden. #importeren  int main (int argc, const char * argv []) @autoreleasepool // Voeg hier code in ... NSLog (@ "Hello, World!");  retourneer 0; 

Het volgende hoofdstuk geeft een diepgaande uitleg van deze code, maar voor nu is het enige belangrijke ding de NSLog () functie, die een string naar de console uitvoert. Merk ook op dat Objective-C-reeksen worden voorafgegaan door een @ symbool (zoals de meeste constructies die exclusief zijn voor Objective-C), en ze moeten dubbel worden aangehaald.

Code compileren

Inclusief codevoorbeeld: HelloObjectiveC

Als u deze code wilt compileren en het resulterende uitvoerbare bestand wilt uitvoeren, klikt u gewoon op Rennen knop in de linkerbovenhoek van de IDE. Als alternatief kunt u selecteren Artikel > Rennen in de hoofdmenubalk of gebruik de Cmd + R Toetsenbord sneltoets. Dit zou het uitvoerpaneel onderaan het scherm moeten openen met een "Hallo, Wereld!" bericht:

HelloObjectiveC-logboekuitvoer

Samenvatting

En dat zijn de basisprincipes van het installeren van de Xcode IDE en het gebruiken om een ​​Objective-C-project te maken en te compileren. We hebben geen codering gedaan, maar hopelijk voel je je meer op je gemak bij de Xcode-interface en kun je op zijn minst door de bestanden van een project navigeren. In het volgende hoofdstuk beginnen we met het schrijven van de Objectief-C-code, het definiëren van klassen, het instantiëren van objecten en het verzenden van berichten ernaar.

Deze les vertegenwoordigt een hoofdstuk uit Objective-C bondig, een gratis eBoek van het team van Syncfusion.