Hem Sociala medier Mac Programutveckling för Dummies Cheat Sheet - dummies

Mac Programutveckling för Dummies Cheat Sheet - dummies

Video: Java Tutorial for Beginners [2019] 2025

Video: Java Tutorial for Beginners [2019] 2025
Anonim

Av Karl G. Kowalski

Macintosh applikationsutveckling kräver kreativitet, programmeringsfärdigheter för mål-C, lite tålamod och en trevlig hjälp av uthållighet att implementera, och leverera ditt Macintosh-program i god ordning till dina användare. På din väg till denna destination kommer du att stöta på några utmaningar som testar dina programmerings- och problemlösningsförmåga. Du måste komma i kontakt med (bland annat) med hjälp av delegater att genomföra ansökningsanrop. Använda icke-mål-C-ramar från Apple; och innehåller C ++-kod i dina appar.

Implementera återuppringningar i Macintosh-program

Macintosh-programutveckling använder återuppringningar för att Mac OS X ska kunna utföra kod inom din app för specifika operationer. Om du skapar en vanlig Macintosh-fönster eller en dokumentbaserad app, är den allra första koden som OS X ska köras i en av följande återställningsmetoder som du måste skapa för din app, beroende på appdesignen:

  • Fönsterbaserade appar: (void) applicationDidFinishLaunching: (NSNotification *) aNotification

  • Dokumentbaserade appar: (void) windowControllerDidLoadNib: (NSWindowController *) windowController

En återuppringning är helt enkelt en metod som operativsystemet utför så småningom medan det försöker leverera eller hämta information från din app. Din ansökningskod kommer att utföra en metod för en kakaoklass där din app kommer att få möjlighet att ange namnet på en metod i en av dina klasser, för att bli kallad ett objekt av den klassen som din app också måste tillhandahålla.

A delegat är ett hjälparobjekt som en kakao-klass använder för att utöka klassens funktionalitet genom att låta dig implementera kod som kakao-klassen kommer att utföra under vissa omständigheter. En kakaoklass kontrollerar sitt delegatobjekt (om en har tilldelats) för huruvida delegaten ger ett genomförande av en specifik metod. Om delegaten har den metoden utför kakaoklassen den metoden. Om delegaten inte genomför den specifika metoden använder kakaoklassen antingen en egen standardmetod eller loggar ett fel. De flesta delegater måste införliva ett särskilt protokoll som bestämmer vilka metoder de kan genomföra. Kodens delegater måste använda implementeringsmetoderna från det specifika protokoll som delegaten förväntar sig.

Här är några av kakaoobjekten som kan använda delegater att utföra din kod:

  • NSTableView.NSTableView accepterar en delegat som följer NSTableViewDelegate-protokollet. Detta inkluderar 20-30 metoder som din apps delegatobjekt kan implementera för att stödja din apps behov av att veta vad NSTableView gör. Det finns metoder som kommer att ringas i din ansökan när den behöver veta och reagera på en handling, till exempel när en användare gör ett urval i tabellen eller när en kolumn ändras.

  • NSApplication. Du kan tilldela ett NSApplicationDelegate för att hantera några av de metoder som en NSApplication-förekomst (din ansökan) kommer att ta emot. Dessa metoder kan kallas strax före eller strax efter att din ansökan har utfört en annan metod så att din app kan förberedas.

  • NSWindow. En NSWindowDelegate som tilldelas en av dina programfönster ger din app chansen att svara på en storlek för användare, flyttning eller andra fönsterhändelser.

  • NSMenu. Du implementerar ett NSMenuDelegate för att stödja händelser som händer när en användare interagerar med menyer i din ansökan.

Icke-objektiv-C-ramar i Macintosh-program

Apple tillhandahåller många Macintosh-programutvecklingsramar (kodbibliotek) som din app kan ringa för att utföra de tusentals operationerna i OS X. Många av dessa ramar, som PDF Kit, består av mål-C-klasser, varifrån din app kan skapa och använda objekt inom dina program. Men några av dessa ramar är bara bibliotek av funktioner som din app kan utföra.

Exempelvis är CFNetwork Framework en uppsättning funktioner som din app kan använda för att utföra finjusterade nätverksanslutningar. NSURL-klassen ger en bra uppsättning grundläggande nätverksoperationer som är bra för att hämta data med en URL. Om din app kräver mer kontroll över de nätverkskommunikationer som den initierar måste du använda CFNetwork-ramen och dess funktioner. Du kan använda följande kod för att förbereda en HTTP-begäran för överföring till en specifik webbadress:

CFStringRef httpBody = CFSTR ("); CFStringRef headerFieldName = CFSTR (" Cookie "); // lägga till specifik cookie till HTTP-förfrågan CFStringRef headerFieldValue = CFSTR ("loginID = my_user_name; password = my_password;"); CFStringRef url = CFSTR ("www. Diabeticpad. Com"); CFURLRef urlRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL); CFStringRef requestMethod = CFSTR ("GET"); CFHTTPMessageRef begäran = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1) CFHTTPMessageSetBody (begäran httpBody); // lägga cookie CFHTTPMessageSetHeaderFieldValue (begäran headerFieldName, headerFieldValue) CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (begäran),

När koden har Serialiserad begäran, din app kan sedan öppna en skrivström för att leverera begäran till dess destination.

Alla C-baserade Apple-ramar ger en uppsättning funktioner för att utföra denna typ av lägre nivå programmering. Din kod blir mer komplicerad, men Apple tillhandahåller inte Objective-C-klasser för alla dess ramar.Om du verkligen behöver funktionaliteten tillgänglig i en av de här ramarna är det här det enda sättet att nå dina appers mål. Följande ramar tillhandahåller inte mål-C-klasser:

  • Ljudverktygslådan

  • CFNetwork

  • Kärn MIDI

  • Kärntext

  • Katalogtjänst (som LDAP och Open Directory)

  • Säkerhet > Om du vill skapa appar som kan dra full nytta av funktionerna i OS X måste du vara redo att stödja användningen av icke-objektiv-C-kodbibliotek.

C ++-kod i Objective-C Macintosh-program

Objective-C ger objektorienterade funktioner för Macintosh-programutveckling, såsom arv och polymorfism. Språket är baserat på C-programmeringsspråket; Därför kan du använda din C programmeringskunskap för att koda inom Objective-C. Objective-C ++ är en bromekanism som tillåter objektiv-C-källmodulerna att fungera med Objective-C ++-klasser, som kan sammanställa och länka till C ++-kodbibliotek.

Följande enkla exempel på en kvadratisk matris visar innehållet i en C ++-headerfil för en Matrix-klass. Matrix-klassen levereras med standardkonstruktorn och destruktorn för en C ++-klass, och metoderna är vad du kan förvänta dig för ett grundläggande kvadratmatrisobjekt:

klassmatris {public: Matrix (int inSize); virtuell ~ Matrix (); int getSize (void); int getDeterminant (void); void setElement (int inRow, int inCol, int inValue); int getElement (int inRow, int inCol); Matrix operator + (const Matrix & inAddend); privat: int m_size; int [] [] m_elements;};

För att använda Objective-C ++ måste dina Objective-C ++-klassmoduler använda filtillägget. mm. Detta berättar för Xcodes kompilator att klassen ska sammanställas med Objective-C ++, vilket gör att din klass kan använda C ++ -språkiga sökord. Med hjälp av Objective-C ++ kan din app skapa ett Matrix-objekt för att utföra grundläggande operationer, till exempel att lägga till två Matrix-objekt tillsammans. Detta förutsätter att Objective-C ++-källmodulen har importerat C ++-matrisen. h-fil:

- (void) addTwoMatrices {Matrix matrixOne (3); // 3x3 matris MatrismatrisTwo (3); // annan int radIndex = 0; int colIndex = 0; för (rowIndex = 0; rowIndex <3; ++ rowIndex) {for (colIndex = 0; colIndex <3; ++ colIndex) {// sätt matrisen ena elementen till deras värden matrixOne. setElement (rowIndex, colIndex, XXX); // sätt matris två delar till några andra värden matrixTwo. setElement (rowIndex, colIndex, YYY);}} Matrix matrixSum = matrixOne + matrixTwo;

Med Objective-C ++ kan dina appar dra nytta av alla tillgängliga bibliotek från tredje part som är skrivna för C ++.
Mac Programutveckling för Dummies Cheat Sheet - dummies

Redaktörens val

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...