Razvoj aplikacij za Mac za LuckyTemplates Cheat Sheet

Razvoj aplikacij Macintosh zahteva ustvarjalnost, spretnosti programiranja Objective-C, nekaj potrpljenja in lepo pomoč pri vztrajnosti za implementacijo, izboljšanje in dostavo vaše aplikacije Macintosh v dobrem stanju vašim uporabnikom. Na poti do tega cilja boste naleteli na nekaj izzivov, ki bodo preizkusili vaše sposobnosti programiranja in reševanja problemov. Morate se spopasti z (med drugim) uporabo delegatov za izvajanje povratnih klicev aplikacij; uporaba Applovih okvirjev, ki niso Objective-C; in vključitev kode C++ v svoje aplikacije.

Implementacija povratnih klicev v aplikacijah Macintosh

Razvoj aplikacij za Macintosh uporablja povratne klice, da omogoči Mac OS X, da izvede kodo v vaši aplikaciji za določene operacije. Če ustvarjate standardno aplikacijo Macintosh, ki temelji na oknu ali dokumentu, je prva koda, ki jo bo izvedel OS X, v enem od naslednjih načinov povratnega klica, ki jih morate ustvariti za svojo aplikacijo, odvisno od zasnove aplikacije:

  • Aplikacije, ki temeljijo na oknu: (void)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Aplikacije, ki temeljijo na dokumentih: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Povratni klic je preprosto metoda, ki jo OS na koncu izvede, medtem ko poskuša zagotoviti ali pridobiti informacije iz vaše aplikacije. Vaša programska koda bo izvedla metodo za razred Cocoa, kjer bo vaša aplikacija imela možnost zagotoviti ime metode enega od vaših razredov, ki bo poklicana na objektu tega razreda, ki ga bo morala zagotoviti tudi vaša aplikacija.

Delegat je pomočnik predmet, katerega kakav razred uporablja za razširitev funkcionalnosti razreda, ki vam omogoča, da izvajanje kode, ki bodo razred kakav izvede v določenih okoliščinah. Razred Cocoa preveri svoj objekt delegata (če je bil dodeljen), ali pooblaščenec zagotavlja izvedbo določene metode. Če ima delegat to metodo, razred Cocoa to metodo izvede; če delegat ne implementira te posebne metode, razred Cocoa bodisi uporabi lastno privzeto metodo ali zabeleži napako. Večina delegatov mora vključiti poseben protokol, ki določa, katere metode lahko izvajajo; delegati vaše kode morajo uporabljati metode implementacije iz posebnega protokola, ki ga pooblaščenec pričakuje.

Tukaj je nekaj objektov Cocoa, ki lahko uporabljajo delegate za izvajanje vaše kode:

  • NSTableView. NSTableView sprejme pooblaščenca, ki upošteva protokol NSTableViewDelegate. To vključuje 20 do 30 metod, ki jih lahko izvaja pooblaščeni objekt vaše aplikacije, da podpre potrebo vaše aplikacije, da ve, kaj počne NSTableView. Obstajajo metode, ki bodo poklicane v vaši aplikaciji, ko mora vedeti in se odzvati na dejanje, na primer, ko uporabnik naredi izbiro v tabeli ali ko se spremeni velikost stolpca.

  • NSA aplikacija. NSApplicationDelegate lahko dodelite za obdelavo nekaterih metod, ki jih bo prejel primerek NSApplication (vaša aplikacija). Te metode se lahko pokličejo tik pred ali takoj po tem, ko vaša aplikacija izvede drugo metodo, tako da se lahko vaša aplikacija pripravi.

  • NSWindow. NSWindowDelegate, dodeljen enemu od oken vaše aplikacije, bo vaši aplikaciji dal možnost, da se odzove na uporabnikovo spreminjanje velikosti, premikanje ali druge dogodke okna.

  • NSMenu. NSMenuDelegate implementirate za podporo dogodkov, ki se zgodijo, ko uporabnik komunicira z meniji v vaši aplikaciji.

Non-Objective-C Frameworks v aplikacijah Macintosh

Apple ponuja veliko ogrodij za razvoj aplikacij za Macintosh (knjižnice kod), ki jih lahko pokliče vaša aplikacija za izvajanje na tisoče operacij v OS X. Številni od teh okvirov, kot je PDF Kit, so sestavljeni iz razredov Objective-C, iz katerih lahko vaša aplikacija ustvarite in uporabite predmete v svojih aplikacijah. Vendar pa so nekateri od teh okvirov le knjižnice funkcij, ki jih lahko izvaja vaša aplikacija.

Na primer, okvir CFNetwork je nabor funkcij, ki jih lahko vaša aplikacija uporablja za izvajanje natančno nastavljenih omrežnih povezav. Razred NSURL ponuja dober nabor osnovnih omrežnih operacij, ki so odlični za pridobivanje podatkov z uporabo URL-ja. Če vaša aplikacija zahteva več nadzora nad omrežnimi komunikacijami, ki jih sproži, boste morali uporabiti okvir CFNetwork in njegove funkcije. Za pripravo zahteve HTTP za prenos na določen URL lahko uporabite naslednjo kodo:

CFStringRef httpBody = CFSTR( ");
CFStringRef headerFieldName = CFSTR( "Piškotek"); // zahtevi HTTP dodamo določen piškotek
CFStringRef headerFieldValue = CFSTR( "ID za prijavo=moje_uporabniško ime; geslo=moje_geslo;");
CFStringRef url = CFSTR( "www.diabeticpad.com");
CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL);
CFStringRef requestMethod = CFSTR( "GET");
Zahteva CFHTTPMessageRef = CFHTTPMessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 );
CFHTTPMessageSetBody( zahteva, httpBody);
// dodaj piškotek
CFHTTPMessageSetHeaderFieldValue( zahteva, headerFieldName, headerFieldValue);
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage(zahteva);

Ko ima vaša koda serijsko zahtevo, lahko vaša aplikacija odpre tok pisanja, da dostavi zahtevo na njen cilj.

Vsa ogrodja Apple, ki temeljijo na C, zagotavljajo nabor funkcij za izvajanje te vrste programiranja na nižji ravni. Vaša koda bo postala bolj zapletena, vendar Apple ne zagotavlja razredov Objective-C za vse svoje okvire. Če resnično potrebujete funkcionalnost, ki je na voljo v enem od teh okvirov, je to edini način, da dosežete cilje svoje aplikacije. Naslednji okvirji ne zagotavljajo razredov Objective-C:

  • Zvočna orodjarna

  • CFNetwork

  • Jedro MIDI

  • Jedro besedila

  • Imeniška storitev (kot sta LDAP in Open Directory)

  • Varnost

Če želite ustvariti aplikacije, ki lahko v celoti izkoristijo funkcije OS X, morate biti pripravljeni podpreti uporabo knjižnic kod, ki niso Objective-C.

Koda C++ v aplikacijah Objective-C Macintosh

Objective-C ponuja objektno usmerjene funkcije za razvoj aplikacij Macintosh, kot sta dedovanje in polimorfizem. Jezik temelji na programskem jeziku C; zato lahko svoje znanje programiranja C uporabite za kodiranje znotraj Objective-C. Objective-C++ je premostitveni mehanizem, ki izvornim modulom Objective-C omogoča delo z razredi Objective-C++, ki se lahko prevedejo in povežejo s kodnimi knjižnicami C++.

Naslednji preprost primer kvadratne matrike prikazuje vsebino datoteke glave C++ za razred Matrix. Razred Matrix je opremljen s standardnim konstruktorjem in destruktorjem za razred C++, metode pa so tisto, kar bi pričakovali za osnovni kvadratni matrični objekt:

razred Matrix
{
javno:
    Matrika (int inSize);
    virtualni ~Matrix();
    int getSize( void);
    int getDeterminant( void);
    void setElement( int inRow, int inCol, int inValue);
    int getElement( int inRow, int inCol );
    Matrični operator+( const Matrix& inAddend );
zasebno:
    int m_size;
    int[][] m_elementi;
};

Za uporabo Objective-C++ morajo vaši moduli razreda Objective-C++ uporabljati pripono datoteke .mm. To pove prevajalniku Xcode, da je treba razred prevesti z uporabo Objective-C++, kar bo vašemu razredu omogočilo uporabo ključnih besed jezika C++. Z uporabo Objective-C++ lahko vaša aplikacija ustvari objekt Matrix za izvajanje osnovnih operacij, kot je dodajanje dveh objektov Matrix skupaj. To predpostavlja, da je izvorni modul Objective-C++ #uvozil datoteko C++ Matrix.h:

- (ne)addTwoMatrices
{
    Matrična matrikaOne(3); // matrika 3x3
    Matrična matrikaDve(3); // drugo
    int rowIndex = 0;
    int colIndex = 0;
    za (indeks vrstice=0; indeks vrstice<3; ++indeks vrstice)
    {
        za (colIndex=0; colIndex<3; ++colIndex)
        {
            // nastavi matrične elemente na njihove vrednosti
            matrixOne.setElement( rowIndex, colIndex, XXX);
            // nastavi elemente matrike dva na druge vrednosti
            matrixTwo.setElement( rowIndex, colIndex, YYY);
        }
    }
    Matrična matrikaSum = matrixOne + matrixTwo;

Z Objective-C++ lahko vaše aplikacije izkoristijo vse razpoložljive knjižnice drugih proizvajalcev, napisane za C++.


Za starejše: Kako vstaviti izrezke v diapozitiv PowerPoint

Za starejše: Kako vstaviti izrezke v diapozitiv PowerPoint

Izrezki so vnaprej narisane splošne umetnine, Microsoft pa s svojimi izdelki Office brezplačno ponuja številne datoteke z izrezki. Izrezke lahko vstavite v postavitev diapozitiva PowerPoint. Najlažji način za vstavljanje izrezka je uporaba enega od označb mesta na postavitvi diapozitiva: Prikažite diapozitiv, ki vsebuje izrezek […]

Za starejše: Kako zapolniti barvo v Microsoft Excelu

Za starejše: Kako zapolniti barvo v Microsoft Excelu

Barva polnila – imenovana tudi senčenje – je barva ali vzorec, ki zapolni ozadje ene ali več celic delovnega lista Excel. Uporaba senčenja lahko pomaga bralčevim očem slediti informacijam po strani ter lahko delovnemu listu doda barvo in vizualno zanimanje. V nekaterih vrstah preglednic, kot je register čekovne knjige, […]

Dodajanje novih stikov v Act! 2005

Dodajanje novih stikov v Act! 2005

Na zelo preprosti ravni je glavni namen ACT! služi kot prostor za shranjevanje vseh stikov, s katerimi dnevno komunicirate. Vse svoje stike lahko dodate in uredite v oknu s podrobnostmi o stiku, ker vsebuje vse informacije, ki se nanašajo na en določen zapis in […]

Discord For LuckyTemplates Cheat Sheet

Discord For LuckyTemplates Cheat Sheet

Uporabite to Cheat Sheet, da takoj začnete uporabljati Discord. Odkrijte koristne bote Discord, aplikacije, ki jih lahko integrirate, in nasvete za intervjuje z gosti.

OpenOffice.org Za LuckyTemplates Cheat Sheet

OpenOffice.org Za LuckyTemplates Cheat Sheet

Pisarniški paket OpenOffice.org ima veliko orodij za lažje delo. Ko delate v OpenOffice.org, spoznajte funkcijsko orodno vrstico (ki je v vseh aplikacijah videti skoraj enako) in glavne gumbe orodne vrstice za pomoč pri osnovnih ukazih za večino opravil.

Bombe Machine Alana Turinga

Bombe Machine Alana Turinga

Stroj Bombe Alana Turinga ni bil nobena oblika umetne inteligence (AI). Pravzaprav niti ni pravi računalnik. Razbil je kriptografska sporočila Enigme in to je to. Vendar pa je Turingu zagotovilo razmislek, kar je na koncu pripeljalo do članka z naslovom “Computing Machinery and Intelligenceâ€?? ki ga je objavil v petdesetih letih prejšnjega stoletja in opisuje […]

Standardne pomanjkljivosti strojne opreme za umetno inteligenco

Standardne pomanjkljivosti strojne opreme za umetno inteligenco

Sposobnost ustvarjanja modularnega sistema ima pomembne prednosti, zlasti v poslu. Zmožnost odstranjevanja in zamenjave posameznih komponent ohranja nizke stroške, hkrati pa omogoča postopno izboljšanje hitrosti in učinkovitosti. Vendar, tako kot pri večini stvari, ni brezplačnega kosila. Modularnost, ki jo zagotavlja Von Neumannova arhitektura, prihaja z nekaj […]

10 stvari, ki jih je treba storiti in kaj storiti pri uporabi QuarkXPress

10 stvari, ki jih je treba storiti in kaj storiti pri uporabi QuarkXPress

Če bi morali izbrati deset stvari o QuarkXPressu, ki jih je enostavno pozabiti, a izjemno uporabnih, ki bi si jih zapomnili, bi bile tiste na naslednjem seznamu, dragi bralec, to. Namaste. Pogovorite se s svojim komercialnim tiskalnikom. Vsi projekti tiskanja se začnejo in končajo s tiskalnikom. To je zato, ker samo tiskarji poznajo svoje omejitve in na tisoče načinov, kako je projekt lahko […]

Izvor Bitcoina

Izvor Bitcoina

Najpomembnejši vidik bitcoina je morda koncept, ki stoji za njim. Bitcoin je ustvaril razvijalec Satoshi Nakamoto. Namesto da bi poskušal oblikovati popolnoma novo plačilno sredstvo, ki bi uničil način, kako vsi plačujemo stvari na spletu, je Satoshi videl določene težave z obstoječimi plačilnimi sistemi in jih želel odpraviti. Koncept […]

Kako zaščititi svojo zasebnost pri uporabi Bitcoin

Kako zaščititi svojo zasebnost pri uporabi Bitcoin

Določena raven anonimnosti je vezana na uporabo bitcoina in digitalne valute na splošno. Ali lahko to označite kot "dovolj anonimno", je osebno mnenje. Obstajajo načini za zaščito vaše zasebnosti, ko uporabljate bitcoin za premikanje sredstev, vendar ti zahtevajo nekaj truda in načrtovanja: ustvarite lahko nov naslov za […]