Hjem Sosiale medier Mac Programutvikling for dummier Cheat Sheet - dummies

Mac Programutvikling for dummier Cheat Sheet - dummies

Video: Factorio og programutvikling – Helge Holm – RevolverConf 2016.2 2025

Video: Factorio og programutvikling – Helge Holm – RevolverConf 2016.2 2025
Anonim

Av Karl G. Kowalski

Macintosh applikasjonsutvikling krever kreativitet, Objective-C programmeringsferdigheter, litt tålmodighet og en god hjelp av utholdenhet til å implementere, og leverer Macintosh-programmet ditt i god stand til brukerne. På vei til denne destinasjonen møter du noen utfordringer som vil teste programmerings- og problemløsningskompetanse. Du må ta tak i (blant annet) å bruke delegater til å implementere tilbakekallingsprogrammer; bruker ikke-mål-C-rammer fra Apple; og inkorporere C ++-koden i appene dine.

Macintosh-programutvikling bruker

tilbakeringinger for å tillate Mac OS X å utføre kode i appen din for bestemte operasjoner. Hvis du oppretter en standard Macintosh-vindu eller en dokumentbasert app, vil den aller første koden som OS X utfører, finnes i en av følgende tilbakeringingsmetoder du må opprette for appen din, avhengig av appdesignen:

Vindubaserte apps: (void) applicationDidFinishLaunching: (NSNotification *) aNotification
  • Dokumentbaserte apps: (void) windowControllerDidLoadNib: (NSWindowController *) windowController

  • En tilbakeringing er rett og slett en metode som operativsystemet til slutt utfører mens det prøver å levere eller hente informasjon fra appen din. Din søknadskode vil utføre en metode for en kakao klasse hvor appen din vil få muligheten til å gi navnet på en metode for en av klassene dine, for å bli kalt på et objekt av den klassen din app vil også måtte gi.

A delegat er et hjelperobjekt, som en kakao-klasse bruker til å forlenge klassens funksjonalitet ved å tillate deg å implementere kode som kakao-klassen vil utføre under visse omstendigheter. En kakao-klasse kontrollerer sitt delegatobjekt (hvis en har blitt tildelt) for om delegaten gir en implementering av en bestemt metode. Hvis delegaten har den metoden, utfører kakao-klassen den metoden. Hvis delegaten ikke implementerer den spesifikke metoden, bruker kakao-klassen enten en standardmetode eller logger en feil. De fleste delegatene må innlemme en bestemt protokoll som bestemmer hvilke metoder de kan implementere; Kodens delegater må bruke implementeringsmetodene fra den spesifikke protokollen som delegaten forventer. Her er noen av kakaoobjekter som kan bruke delegater til å utføre koden din:

NSTableView.NSTableView aksepterer en delegat som følger NSTableViewDelegate-protokollen. Dette inkluderer 20 til 30 metoder som appens delegatobjekt kan implementere for å støtte appens behov for å vite hva NSTableView gjør. Det finnes metoder som vil bli kalt i søknaden din når den trenger å vite og reagere på en handling, for eksempel når en bruker foretar et valg i tabellen eller når en kolonne er endret.

  • NSApplication. Du kan tilordne en NSApplicationDelegate til å håndtere noen av metodene som en NSApplication-forekomst (søknaden din) mottar. Disse metodene kan kalles like før eller like etter at applikasjonen din har utført en annen metode, slik at appen din kan bli forberedt.

  • NSWindow. En NSWindowDelegate tilordnet en av programmets vinduer vil gi appen din sjansen til å svare på en brukerendring, flytting eller andre vinduhendelser.

  • NSMenu. Du implementerer en NSMenuDelegate for å støtte hendelser som skjer når en bruker samhandler med menyer i søknaden din.

  • Ikke-objektiv-C-rammer i Macintosh-applikasjoner

Apple gir mange Macintosh-programutviklingsrammer (kodebiblioteker) som appen din kan ringe for å utføre tusenvis av operasjoner i OS X. Mange av disse rammene, som PDF-filen Kit, består av Objective-C klasser, hvorfra appen din kan opprette og bruke objekter i dine applikasjoner. Noen av disse rammene er imidlertid bare biblioteker med funksjoner som appen din kan utføre.

CFNetwork-rammeverket er for eksempel et sett med funksjoner som appen din kan bruke til å utføre finjusterte nettverksforbindelser. NSURL-klassen gir et godt sett med grunnleggende nettverksoperasjoner som er gode for å hente data ved hjelp av en nettadresse. Hvis appen krever mer kontroll over nettverkskommunikasjonen den initierer, må du bruke CFNetwork-rammen og dens funksjoner. Du kan bruke følgende kode for å forberede en HTTP-forespørsel for overføring til en bestemt nettadresse:

CFStringRef httpBody = CFSTR ("); CFStringRef headerFieldName = CFSTR (" Cookie "); // legge til spesifikk informasjonskapsel til HTTP-forespørsel 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 request = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1); CFHTTPMessageSetBody (forespørsel, httpBody); // legge cookie CFHTTPMessageSetHeaderFieldValue (forespørsel, headerFieldName, headerFieldValue); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (forespørsel);

Når koden din har Den serielle forespørselen, appen din kan deretter åpne en skrive-stream for å levere forespørselen til bestemmelsesstedet.

Alle de C-baserte Apple-rammene gir en sett med funksjoner for å utføre denne typen programmering på lavere nivå. Koden din blir mer komplisert, men Apple gir ikke mål-C-klasser for alle sine rammer.Hvis du virkelig trenger funksjonaliteten som er tilgjengelig i en av rammene, er dette den eneste måten du kan oppnå appens mål på. Følgende rammer gir ikke mål-C-klasser:

Lydverktøyskasse

  • CFNetwork

  • Kjerne MIDI

  • Kjerne Tekst

  • Katalogtjeneste (for eksempel LDAP og Open Directory)

  • Sikkerhet > Hvis du vil lage apper som kan dra full nytte av funksjonene til OS X, må du være klar til å støtte bruken av ikke-objektive C-kodebiblioteker.

  • C ++-kode i Objective-C Macintosh-applikasjoner

Objective-C gir objektorienterte funksjoner for Macintosh-programutvikling, som arv og polymorfisme. Språket er basert på C programmeringsspråket; Derfor kan du bruke C programmeringskunnskap til å kode innenfor Objective-C. Objective-C ++ er en bromekanisme som tillater Objective-C-kildemoduler å jobbe med Objective-C ++-klasser, som kan kompilere og lenke til C ++-kodebiblioteker.

Følgende enkle eksempel på en kvadratmatrise viser innholdet i en C ++ header-fil for en Matrix-klasse. Matrix-klassen leveres med standardkonstruktøren og destruktoren for en C ++-klasse, og metodene er det du forventer for et grunnleggende firkantmatrisobjekt:

klasse Matrix {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;};

For å bruke Objective-C ++ må objektiv-C ++ klassemodulene bruke filtypen. mm. Dette forteller Xcodes kompilator at klassen skal kompileres ved hjelp av Objective-C ++, som vil gjøre at klassen din kan bruke C ++-språkord. Ved hjelp av Objective-C + + kan appen lage et Matrix-objekt for å utføre grunnleggende operasjoner, for eksempel å legge til to Matrix-objekter sammen. Dette forutsetter at Objective-C ++-kildemodulen har #imported C ++ Matrix. h-fil:

- (void) addTwoMatrices {Matrix matrixOne (3); // 3x3 matrix Matrix matrixTwo (3); // annen int radIndex = 0; int colIndex = 0; for (rowIndex = 0; rowIndex <3; ++ rowIndex) {for (colIndex = 0; colIndex <3; ++ colIndex) {// angi matrisens elementer til deres verdier matrixOne. setElement (rowIndex, colIndex, XXX); // sett matrise to elementer til noen andre verdier matrixTwo. setElement (rowIndex, colIndex, YYY);}} Matrix matrixSum = matrixOne + matrixTwo;

Med Objective-C ++ kan appene dine dra nytte av alle tilgjengelige tredjepartsbiblioteker som er skrevet for C ++.

Mac Programutvikling for dummier Cheat Sheet - dummies

Redaktørens valg

5 Tjenester som kan følge med på sosiale medier - dummies

5 Tjenester som kan følge med på sosiale medier - dummies

Del av å følge med sosiale medier er å identifisere influencers, generere salg og måle følelser. Mange av disse tjenestene produserer sofistikert analyse og rapporter, og de beste belaster store gebyrer for å gjøre det. Hvilke du bruker, avhenger av budsjettet, dine behov og dine preferanser for hvordan de søker og genererer informasjon. ...

5 Måter å analysere sosiale medier Trender - dummies

5 Måter å analysere sosiale medier Trender - dummies

Hvis du leter etter måter å søke etter navn , merker eller nøkkelord blir nevnt på sosiale nettsteder, hjelper disse tjenestene deg ikke bare med å identifisere hvor disse navnene deles, men også bidra til å gjøre resultatene relevante. PeopleBrowsr er et sosialt media søkeverktøy som lar deg søke i brukernes aktiviteter over tid. Topsy er ...

10 Regler for Social Media Optimization - dummies

10 Regler for Social Media Optimization - dummies

Hvor mange regler er det for sosiale medier optimalisering (SMO)? Det avhenger av hvem du spørger. Disse reglene legger et solid grunnlag for din sosiale mediepraksis, og at du kan bruke dem som prinsipper for å skape en effektiv praksis. Vær autentisk Denne hører hjemme på toppen av listen. Nummer-ett-problemet ...

Redaktørens valg

Slik avslutter du en kolonne i Word 2007 - dummies

Slik avslutter du en kolonne i Word 2007 - dummies

Word 2007 tilbyr flere måter å avslutte en kolonne av Tekst: Du kan opprette en kolonneavbryt, gå tilbake til Enkelt kolonne-modus, eller fjerne kolonner fra et dokument. Lag en kolonneavbryt Når du vil fortsette å bruke kolonner, men du vil at teksten du skriver skal starte øverst på det neste ...

Slik fyller du inn tekst i et Word 2007-tabell - dummies

Slik fyller du inn tekst i et Word 2007-tabell - dummies

For å fylle ut Word 2007-tabellen med tekst , du begynner bare å skrive. Når du skriver, passer hele teksten til en enkelt celle, som vokser høyere for å imøtekomme lange biter av tekst. For å hjelpe deg med å skrive inn tekst og flytte rundt i et bord, kan du bruke bestemte taster til å utføre spesialfunksjoner: Tab: For å flytte ...

Slik skriver du inn ukjente tegn i et Word 2007-dokument - dummier

Slik skriver du inn ukjente tegn i et Word 2007-dokument - dummier

Word 2007 bruker to ikke-brytende tegn , mellomrom og bindestrek (eller bindestrek), for å bryte linjer med tekst: Plassen deler en linje mellom to ord, og bindestrek (ved hjelp av bindestrek) deler en linje mellom to ordstykker. Noen ganger vil du imidlertid ikke at en linje skal splittes av et mellomrom eller en bindestrek. For ...

Redaktørens valg

Legger til tekstanalyse til datavisualiseringer - dummies

Legger til tekstanalyse til datavisualiseringer - dummies

En av de kraftigste måtene å legge til sammenheng med datavisualiseringene dine er å inkludere tekstanalyse. I Business Intelligence Dashboard Formula World er tekstanalyse definert som en kort setning eller et fragment som inneholder en kombinasjon av statisk tekst og dynamiske verdier som beskriver en eller flere visualiseringer. Følgende figur viser ...

4 Uvanlig designverktøy for infographics arbeid - dummies

4 Uvanlig designverktøy for infographics arbeid - dummies

Infographics er en stadig mer populær form for deling av informasjon. Mekanikkene til å lage et infografisk har historisk vært litt komplisert, og krever at du trenger visse programvare og design ferdigheter. I det siste, noen & ldquo; nye barn i blokken & rdquo; tilbyr noen interessante og forenklede måter å lage og dele infographics på. Arbeide med disse verktøyene kan være ...

Velg riktig type punkt (størrelse) for infographics - dummies

Velg riktig type punkt (størrelse) for infographics - dummies

Du trenger alltid å Vær oppmerksom på hvordan lesbar typen i infografikken din vil være når folk ser på den. Teksten må være stor nok og klar nok til at folk kan lese det. Felles designstandarder dikterer at kroppstypen ikke skal være mindre enn 10 poeng, og det anbefales i de fleste tilfeller å ...