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] 2024

Video: Java Tutorial for Beginners [2019] 2024
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

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: