Huis Sociale Media Mac Applicatieontwikkeling voor Dummy's Cheat Sheet - dummies

Mac Applicatieontwikkeling voor Dummy's Cheat Sheet - dummies

Video: App ontwikkelaar - Hoe ontwikkel je een eigen app? 2024

Video: App ontwikkelaar - Hoe ontwikkel je een eigen app? 2024
Anonim

Door Karl G. Kowalski

Macintosh applicatie-ontwikkeling vereist creativiteit, objectieve programmeervaardigheden, enig geduld en een mooie portie persistentie om te implementeren, te verfijnen, en lever je Macintosh-applicatie in goede werkende staat af aan je gebruikers. Op weg naar deze bestemming zul je een aantal uitdagingen tegenkomen die je programmeer- en probleemoplossende vaardigheden zullen testen. Je moet grip krijgen (onder andere) met behulp van afgevaardigden om applicatie-callbacks te implementeren; gebruik van niet-Objective-C frameworks van Apple; en C ++ -code opnemen in uw apps.

Terugbellen implementeren in Macintosh-toepassingen

De ontwikkeling van Macintosh-toepassingen gebruikt callbacks om Mac OS X in staat te stellen code uit te voeren binnen uw app voor specifieke bewerkingen. Als u een standaard Macintosh-venster- of documentgebaseerde app maakt, is de allereerste code die door OS X wordt uitgevoerd, afhankelijk van het app-ontwerp in een van de volgende callback-methoden die u voor uw app moet maken:

  • Window-gebaseerde apps: (ongeldig) applicationDidFinishLaunching: (NSNotification *) aNotification

  • Document-gebaseerde apps: (void) windowControllerDidLoadNib: (NSWindowController *) windowController

Een callback is gewoon een methode die het OS uiteindelijk uitvoert terwijl het probeert informatie uit uw app te leveren of op te halen. Uw toepassingscode voert een methode uit voor een Cocoa-klasse, waarbij uw app de mogelijkheid heeft om de naam van een methode van een van uw klassen op te geven, om te worden aangeroepen in een object van die klasse dat uw app ook moet bieden.

Een deelnemer is een helperobject dat een Cocoa-klasse gebruikt om de functionaliteit van de klasse uit te breiden door u in staat te stellen code te implementeren die de Cocoa-klasse in bepaalde omstandigheden zal uitvoeren. Een Cocoa-klasse controleert zijn gedelegeerde object (als er een is toegewezen) of de gedelegeerde een implementatie van een specifieke methode biedt. Als de deelnemer deze methode heeft, voert de Cocoa-klasse die methode uit; als de deelnemer deze specifieke methode niet implementeert, gebruikt de Cocoa-klasse een eigen standaardmethode of logt een fout in. De meeste deelnemers moeten een bepaald -protocol opnemen dat bepaalt welke methoden ze kunnen implementeren; de gedelegeerden van uw code moeten de implementatiemethoden gebruiken van het specifieke protocol dat de gedelegeerde verwacht.

Hier zijn enkele Cocoa-objecten die deelnemers kunnen gebruiken om uw code uit te voeren:

  • NSTableView.De NSTableView accepteert een deelnemer die het protocol NSTableViewDelegate gehoorzaamt. Dit omvat 20 tot 30 methoden die het delegatieobject van uw app kunnen implementeren om de behoefte van uw app te ondersteunen om te weten wat de NSTableView aan het doen is. Er zijn methoden die in uw toepassing worden aangeroepen wanneer deze moeten weten en reageren op acties, zoals wanneer een gebruiker een selectie in de tabel maakt of wanneer de grootte van een kolom wordt gewijzigd.

  • NSApplication. U kunt een NSApplicationDelegate toewijzen om enkele van de methoden te verwerken die een NSApplication-instantie (uw toepassing) zal ontvangen. Deze methoden kunnen worden aangeroepen vlak voor of net nadat uw toepassing een andere methode heeft uitgevoerd, zodat uw app kan worden voorbereid.

  • NSWindow. Een NSWindowDelegate dat is toegewezen aan een van de vensters van uw toepassing geeft uw app de kans om te reageren op de grootte van een gebruiker, het verplaatsen of andere venstergebeurtenissen.

  • NSMenu. U implementeert een NSMenuDelegate om gebeurtenissen te ondersteunen die plaatsvinden wanneer een gebruiker communiceert met menu's in uw toepassing.

Niet-objectieve C-frameworks in Macintosh-toepassingen

Apple biedt veel Macintosh-toepassingsontwikkelingskaders (codebibliotheken) die uw app kan gebruiken om de duizenden bewerkingen in OS X uit te voeren. Veel van deze frameworks, zoals de PDF Kit, zijn samengesteld uit Objective-C klassen, van waaruit uw app objecten binnen uw toepassingen kan maken en gebruiken. Sommige van deze frameworks zijn echter alleen bibliotheken met functies die uw app kan uitvoeren.

Het CFNetwork-framework is bijvoorbeeld een reeks functies die uw app kan gebruiken om nauwkeurig afgestemde netwerkverbindingen uit te voeren. De klasse NSURL biedt een goede set basisnetwerkbewerkingen die uitstekend geschikt zijn voor het ophalen van gegevens met behulp van een URL. Als uw app meer controle vereist over de netwerkcommunicatie die deze initieert, moet u het CFNetwork-framework en de bijbehorende functies gebruiken. U kunt de volgende code gebruiken om een ​​HTTP-verzoek voor verzending naar een specifieke URL voor te bereiden:

CFStringRef httpBody = CFSTR ("); CFStringRef headerFieldName = CFSTR (" Cookie "); // specifieke cookie aan HTTP-aanvraag toevoegen CFStringRef headerFieldValue = CFSTR ("loginID = mijn_gebruikersnaam; wachtwoord = mijn_wachtwoord;"); CFStringRef-URL = CFSTR ("www.diabeticpad.com"); CFURLRef-URLRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL); CFStringRef requestMethod = CFSTR ("GET"); CFHTTPMessageRef request = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1); CFHTTPMessageSetBody (aanvraag, httpBody); // toe te voegen van de cookie CFHTTPMessageSetHeaderFieldValue (aanvraag, headerFieldName, headerFieldValue); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (aanvraag);

Zodra uw code heeft het seriedragende verzoek kan uw app vervolgens een schrijfstroom openen om het verzoek naar zijn bestemming te bezorgen.

Alle op C gebaseerde Apple-frameworks bieden een reeks functies voor het uitvoeren van dit type programmering op een lager niveau. Uw code zal ingewikkelder worden, maar Apple biedt geen objectief-C klassen voor al zijn kaders.Als u echt de functionaliteit nodig heeft die beschikbaar is in een van deze frameworks, is dit de enige manier om de doelen van uw app te bereiken. De volgende frameworks bieden geen Objective-C-klassen:

  • Audio Toolbox

  • CFNetwerk

  • Core MIDI

  • Core-tekst

  • Directoryservice (zoals LDAP en Open Directory)

  • Beveiliging > Als u apps wilt maken die optimaal gebruik kunnen maken van de functies van OS X, moet u klaar zijn om het gebruik van niet-objectief-C-codebibliotheken te ondersteunen.

C ++ -code in Objective-C Macintosh-toepassingen

Objective-C biedt objectgeoriënteerde functies voor de ontwikkeling van Macintosh-toepassingen, zoals overerving en polymorfisme. De taal is gebaseerd op de programmeertaal C; daarom kunt u uw C programmeerkennis gebruiken om te coderen in Objective-C. Objective-C ++ is een brugmechanisme waarmee Objective-C-bronmodules kunnen werken met Objective-C ++ -klassen die kunnen compileren en koppelen met C ++-codebibliotheken.

Het volgende eenvoudige voorbeeld van een vierkante matrix toont de inhoud van een C ++ header-bestand voor een Matrix-klasse. De klasse Matrix wordt geleverd met de standaardconstructor en destructor voor een klasse C ++, en de methoden zijn wat u zou verwachten voor een standaard vierkante matrixobject:

klasse Matrix {public: Matrix (int inSize); virtuele ~ Matrix (); int getSize (void); int getDeterminant (void); void setElement (int inRow, int inCol, int inValue); int getElement (int in Row, int inCol); Matrix-operator + (const Matrix & in Addend); privé: int m_size; int [] [] m_elements;};

Om Objective-C ++ te gebruiken, moeten uw objectief-C ++-klassenmodules de bestandsextensie gebruiken. mm. Dit vertelt de Xcode-compiler dat de klasse moet worden gecompileerd met behulp van Objective-C ++, waardoor uw klas C ++ -taalzoekwoorden kan gebruiken. Met Objective-C ++ kan uw app een Matrix-object maken om basisbewerkingen uit te voeren, zoals het samenvoegen van twee Matrix-objecten. Dit veronderstelt dat de Objective-C ++ bronmodule # de C ++ Matrix heeft geïmporteerd. h bestand:

- (void) addTwoMatrices {Matrix matrixOne (3); // 3x3 matrix MatrixmatrixTwee (3); // een andere int rowIndex = 0; int colIndex = 0; for (rowIndex = 0; rowIndex <3; ++ rowIndex) {for (colIndex = 0; colIndex <3; ++ colIndex) {// zet de elementen van matrix one naar hun waarden matrixOne. setElement (rowIndex, colIndex, XXX); // stel matrix twee's elementen in op enkele andere waarden matrixTwo. setElement (rowIndex, colIndex, YYY);}} Matrix matrixSum = matrixOne + matrixTwo;

Met Objective-C ++ kunnen uw apps profiteren van alle beschikbare bibliotheken van derden die zijn geschreven voor C ++.
Mac Applicatieontwikkeling voor Dummy's Cheat Sheet - dummies

Bewerkers keuze

Meten Elektronische golven: golfvormen te zien op een oscilloscoop - dummies

Meten Elektronische golven: golfvormen te zien op een oscilloscoop - dummies

Er zijn vier basistypen golfvormen die je steeds weer tegenkomt terwijl je met elektronische circuits werkt. Golfvormen zijn de karakteristieke patronen die oscilloscoopsporen gewoonlijk nemen. Deze patronen geven aan hoe de spanning in het signaal verandert in de loop van de tijd - stijgt en daalt langzaam of snel, is de spanning ...

Must-have-functies voor een handheld GPS - dummies

Must-have-functies voor een handheld GPS - dummies

Als u het gelukkigst bent in de vrije natuur, een handheld GPS-apparaat kan je nog gelukkiger maken. Gebruik een GPS-apparaat om te helpen met uw persoonlijke navigatiebehoeften, of u nu gaat varen, wandelen, geocachen of een andere buitenactiviteit uitvoert. De volgende tabel bevat de aanbevolen functies om u te helpen bij het kiezen van de juiste GPS-ontvanger voor uw doeleinden: ...

Meten van spullen met een multimeter - dummies

Meten van spullen met een multimeter - dummies

Een multimeter is een apparaat voor het testen van elektronica dat meerdere dingen test, waaronder weerstand, spanning en stroom. Met behulp van bepaalde multimetermodellen kunt u testen of componenten - zoals diodes, condensatoren en transistors - goed werken. U kunt ook problemen met uw circuit oplossen om te zien waar de stroom uitvalt en het probleem vaststellen ...

Bewerkers keuze

Organiseer uw blogontwerp met categorieën en tags - dummies

Organiseer uw blogontwerp met categorieën en tags - dummies

Categorieën en tags helpen uw lezers blogposts te vinden gemakkelijk. Effectief gebruik van blogcategorieën en tags helpt ook bij uw SEO (zoekmachineoptimalisatie). Uw gebruik van categorieën en tags is van invloed op het navigatieontwerp van uw blog, dus u moet wat tijd nemen om de blogcategorieën en -tags te selecteren die u wilt ...

Persoonlijke en professionele grenzen voor moederbloggers - dummies

Persoonlijke en professionele grenzen voor moederbloggers - dummies

In een interview, Heather Armstrong van Dooce. com onthulde hoe ze persoonlijke en professionele grenzen overschreed, met als gevolg dat ze haar baan verloor en haar familie pijn deed. Heather Armstrong begon te bloggen als een manier om haar frustraties met haar collega's te ventileren en om haar kritische mening over de mormoonse religie van haar familie te delen. Toen, zij ...

Persoonlijke schrijfstijl als een moederblogger - dummies

Persoonlijke schrijfstijl als een moederblogger - dummies

Als een moederblogger, moet u uw behoefte aan schrijf voor plezier met de noodzaak om iets aan je lezers te geven in elk bericht. Zelfs als je al een gevestigde schrijver bent, is het ontwikkelen van je persoonlijke schrijfstijl als een blogger iets dat alleen met de tijd kan komen. Als je gevestigde professionele bloggers vraagt ​​...

Bewerkers keuze

Praktische tips voor het bouwen van vertrouwen en rij-interactie - dummies

Praktische tips voor het bouwen van vertrouwen en rij-interactie - dummies

Hier zijn zes voorbeelden voor het opbouwen van vertrouwen en interactie stimuleren via sociale media. Of je nu probeert een volgertje op Twitter op te zetten of publiciteit voor je bedrijf op Facebook te genereren, hier zijn een paar voorbeelden van hoe het werkt.

Basisprincipes van Desktop Photo Editing Tools voor visuele sociale marketing - dummies

Basisprincipes van Desktop Photo Editing Tools voor visuele sociale marketing - dummies

Ongeacht de methode die u gebruikt gebruik om foto's te krijgen voor visuele sociale marketing, of je ze nu zelf neemt, een professional inhuurt of ze koopt, je hebt waarschijnlijk op een bepaald moment fotobewerkingstools nodig in je visuele strategie voor het maken van afbeeldingen voor het maken van afbeeldingen. U kunt gewoon een stockfoto die u hebt gekocht bijsnijden of de ...

3 Manieren om Sidebar-distracties van het ontwerp van uw blog te verwijderen - dummies

3 Manieren om Sidebar-distracties van het ontwerp van uw blog te verwijderen - dummies

Door bepaalde zijbalkinhoud toe te voegen leid de lezers van je blog echt af van je eigenlijke blogposts. Kies bij het ontwerpen van de zijbalk voor uw blog items die nuttig zijn voor de lezer en die u ook van dienst zijn.