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

ASVAB Aritmetisk Reasoning (Math Word Problem) Practice Questions - Dummies

ASVAB Aritmetisk Reasoning (Math Word Problem) Practice Questions - Dummies

Aritmetik Reasoning questions are math problem som uttrycks i ett historiaformat. Ditt mål är att bestämma vad frågan frågar genom att plocka ut relevanta faktorer som behövs för att lösa problemet, ställa in matematiska ekvationer efter behov och komma fram till rätt lösning. Låter enkelt, eller hur? Provfrågor Försök din hand på följande ...

ASVAB Aritmetisk Reasoning Practice: Pengarproblem - Dummies

ASVAB Aritmetisk Reasoning Practice: Pengarproblem - Dummies

Alla har pengarproblem och den Aritmetiska Reasoning-undersökningen på ASVAB är inget undantag. Den goda nyheten är att du kan lösa problemen på ASVAB med bara en liten algebra. Övningsfrågor Dan köpte en fiskespole från David Edwins Fishing Emporium för 15 dollar. 95. Dan spenderade lite pengar på bete och två gånger ...

ASVAB Aritmetisk Reasoning Practice: Ojämlikheter - dummies

ASVAB Aritmetisk Reasoning Practice: Ojämlikheter - dummies

Den aritmetiska Reasoning-undersökningen på ASVAB kommer att innehålla vissa ojämlikhetsfrågor. Du kan identifiera dem eftersom de innehåller fraser som "åtminstone" och "mindre än eller lika med. "Practice-frågor Express matematiskt: Produkten av x och y är större än eller lika med kvoten av b och c. Benjamin arbetar 15 timmar ...

Redaktörens val

Java Programmering: Läsning av en linje i taget - dummies

Java Programmering: Läsning av en linje i taget - dummies

I denna Java-kodlista, PayOneEmployee Metoden illustrerar några användbara knep för att läsa data. I synnerhet varje skanner som du skapar har en NextLine-metod. (Du kan inte använda den här nästaLine-metoden, men metoden är ändå tillgänglig.) När du ringer en skanners nästaLine-metod tar metoden allt fram till slutet av ...

Java Programmering: Läsning från en fil - dummies

Java Programmering: Läsning från en fil - dummies

Många Java-program läser tecken från datorns tangentbord. Dessa program använder saker som Scanner, System. i och nextDouble - saker definierade i Java API. DoPayroll-programmet i den här listan lägger en ny spinn på den här historien. I stället för att läsa tecken från tangentbordet läser programmet tecken från EmployeeInfo. txt-fil. Filen lever ...

Java Programmering: Att ställa in datorn för att göra någonting - dummies

Java Programmering: Att ställa in datorn för att göra någonting - dummies

I Listning 1 nedan en spräng av Java-kod. Liksom alla nybörjare programmerare, förväntas du gawk ödmjukt vid koden. Men var inte skrämmad. När du hänger på det är programmeringen ganska lätt. Ja, det är roligt också. Listning 1: Ett enkelt Java-program / * * Ett program för att lista ...

Redaktörens val

Hur man lägger till bilder i ditt PowerPoint 2007 Photo Album - dummies

Hur man lägger till bilder i ditt PowerPoint 2007 Photo Album - dummies

Du kan placera bildtexter under bilderna i ditt PowerPoint fotoalbum. PowerPoint placerar först filnamnet i bildtexten, men du kan ta bort den här bildtexten och ange en av dina egna. För att lägga till bildtexter i ditt fotoalbum, följ dessa steg:

Hur man lägger till kommentarer till PowerPoint 2013 Presentationer - dummies

Hur man lägger till kommentarer till PowerPoint 2013 Presentationer - dummies

En kommentar i PowerPoint 2013 är mycket som en fästis. Skönheten i kommentarerna är att du kan slå dem på och av. Därför kan du se kommentarerna medan du redigerar din presentation, och du kan stänga av dem när det är dags för showen. För att lägga till en kommentar till en presentation, ...

Hur man lägger till Clip Art i en PowerPoint 2007 Slide - dummies

Hur man lägger till Clip Art i en PowerPoint 2007 Slide - dummies

PowerPoint Clip Art-uppgiftsrutan som låter dig söka efter nyckelord för en bild för att pryda din PowerPoint-presentation. Första gången du öppnar uppgiftspanelen i PowerPoint Clip Art, frågar en dialogruta att du söker efter hårddisken och katalogiserar alla dina bilder. Då kan du komma åt din ...