Vývoj Mac aplikácií pre LuckyTemplates Cheat Sheet

Vývoj aplikácií pre Macintosh si vyžaduje kreativitu, programovacie zručnosti v Objective-C, určitú trpezlivosť a dobrú vytrvalosť pri implementácii, vylepšovaní a poskytovaní vašej aplikácie pre Macintosh v dobrom funkčnom stave vašim používateľom. Na ceste do tohto cieľa narazíte na niekoľko výziev, ktoré preveria vaše schopnosti programovania a riešenia problémov. Musíte sa vyrovnať (okrem iného) s používaním delegátov na implementáciu spätných volaní aplikácií; používanie non-Objective-C frameworkov od Apple; a začlenenie kódu C++ do vašich aplikácií.

Implementácia spätných volaní v aplikáciách Macintosh

Vývoj aplikácií pre systém Macintosh využíva spätné volania, aby umožnil systému Mac OS X spustiť kód vo vašej aplikácii pre konkrétne operácie. Ak vytvárate štandardnú aplikáciu založenú na okne alebo dokumentoch pre Macintosh, úplne prvý kód, ktorý OS X spustí, je v jednej z nasledujúcich metód spätného volania, ktoré musíte pre svoju aplikáciu vytvoriť v závislosti od dizajnu aplikácie:

  • Aplikácie založené na okne: (void)applicationDidFinishSpustenie:(NSNotification*)aNotification

  • Aplikácie založené na dokumentoch: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Spätné volanie je jednoducho metóda, ktorú OS nakoniec vykoná, keď sa pokúša dodať alebo získať informácie z vašej aplikácie. Kód vašej aplikácie spustí metódu pre triedu kakaa, kde bude mať vaša aplikácia možnosť poskytnúť názov metódy jednej z vašich tried, ktorá sa má vyvolať na objekte triedy, ktorú bude musieť poskytnúť aj vaša aplikácia.

Delegát je objekt pomocníka, ktorý trieda Cocoa používa na rozšírenie funkčnosti triedy tým, že umožňuje implementovať kód, ktorý trieda Cocoa bude spúšťať za určitých okolností. Trieda kakaa kontroluje svoj objekt delegáta (ak bol priradený), či delegát poskytuje implementáciu špecifickej metódy. Ak má delegát túto metódu, trieda Cocoa túto metódu vykoná; ak delegát neimplementuje túto špecifickú metódu, trieda Cocoa buď použije vlastnú predvolenú metódu, alebo zaznamená chybu. Väčšina delegátov musí začleniť konkrétny protokol, ktorý určuje, aké metódy môžu implementovať; delegáti vášho kódu musia používať metódy implementácie zo špecifického protokolu, ktorý delegát očakáva.

Tu sú niektoré z objektov kakaa, ktoré môžu použiť delegátov na spustenie vášho kódu:

  • NSTableView. NSTableView akceptuje delegáta, ktorý sa riadi protokolom NSTableViewDelegate. To zahŕňa 20 až 30 metód, ktoré môže implementovať objekt delegáta vašej aplikácie, aby podporil potrebu vašej aplikácie vedieť, čo robí NSTableView. Existujú metódy, ktoré sa zavolajú vo vašej aplikácii, keď potrebuje poznať akciu a reagovať na ňu, napríklad keď používateľ urobí výber v tabuľke alebo keď sa zmení veľkosť stĺpca.

  • Aplikácia NSA. Môžete priradiť NSApplicationDelegate na obsluhu niektorých metód, ktoré inštancia NSApplication (vaša aplikácia) dostane. Tieto metódy možno volať tesne pred alebo hneď po tom, ako vaša aplikácia vykoná inú metódu, aby sa vaša aplikácia dala pripraviť.

  • NSWindow. Funkcia NSWindowDelegate priradená jednému z okien vašej aplikácie umožní vašej aplikácii reagovať na zmenu veľkosti, presun alebo iné udalosti v okne používateľa.

  • NSMenu. Implementujete NSMenuDelegate na podporu udalostí, ku ktorým dochádza, keď používateľ interaguje s ponukami vo vašej aplikácii.

Non-Objective-C Frameworks v aplikáciách Macintosh

Spoločnosť Apple poskytuje mnoho rámcov na vývoj aplikácií pre počítače Macintosh (knižnice kódov), ktoré môže vaša aplikácia volať na vykonávanie tisícok operácií v systéme OS X. Mnohé z týchto rámcov, ako napríklad súprava PDF, pozostávajú z tried Objective-C, z ktorých môže vaša aplikácia vytvárať a používať objekty vo svojich aplikáciách. Niektoré z týchto rámcov sú však len knižnice funkcií, ktoré môže vaša aplikácia vykonávať.

Rámec CFNetwork je napríklad súbor funkcií, ktoré môže vaša aplikácia použiť na vykonávanie vyladených sieťových pripojení. Trieda NSURL poskytuje dobrý súbor základných sieťových operácií, ktoré sú skvelé na získavanie údajov pomocou adresy URL. Ak vaša aplikácia vyžaduje väčšiu kontrolu nad sieťovou komunikáciou, ktorú spúšťa, budete musieť použiť rámec CFNetwork a jeho funkcie. Na prípravu požiadavky HTTP na prenos na konkrétnu adresu URL môžete použiť nasledujúci kód:

CFStringRef httpBody = CFSTR( ");
CFStringRef headerFieldName = CFSTR( "Cookie" ); // pridanie konkrétneho súboru cookie do požiadavky HTTP
CFStringRef headerFieldValue = CFSTR( "loginID=moje_pouzivatelske_meno; heslo=moje_heslo;" );
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( požiadavka, httpBody );
// pridajte koláčik
CFHTTPMessageSetHeaderFieldValue( požiadavka, hlavičkaFieldName, headerFieldValue);
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage(požiadavka);

Keď bude mať váš kód serializovanú požiadavku, vaša aplikácia môže otvoriť stream zápisu, aby doručila požiadavku na miesto určenia.

Všetky rámce Apple založené na C poskytujú súbor funkcií na vykonávanie tohto typu programovania nižšej úrovne. Váš kód bude komplikovanejší, ale Apple neposkytuje triedy Objective-C pre všetky svoje rámce. Ak skutočne potrebujete funkcie dostupné v jednom z týchto rámcov, je to jediný spôsob, ako môžete dosiahnuť ciele svojej aplikácie. Nasledujúce rámce neposkytujú triedy Objective-C:

  • Audio Toolbox

  • CFNetwork

  • Jadro MIDI

  • Hlavný text

  • Adresárová služba (napríklad LDAP a Open Directory)

  • Bezpečnosť

Ak chcete vytvárať aplikácie, ktoré dokážu naplno využívať funkcie OS X, musíte byť pripravení podporovať používanie knižníc kódov, ktoré nie sú Objective-C.

C++ kód v Objective-C Macintosh aplikáciách

Objective-C poskytuje objektovo orientované funkcie pre vývoj aplikácií pre Macintosh, ako napríklad dedičnosť a polymorfizmus. Jazyk je založený na programovacom jazyku C; preto môžete použiť svoje znalosti programovania v jazyku C na kódovanie v rámci Objective-C. Objective-C++ je premosťovací mechanizmus, ktorý umožňuje zdrojovým modulom Objective-C pracovať s triedami Objective-C++, ktoré môžu kompilovať a prepojiť s knižnicami kódu C++.

Nasledujúci jednoduchý príklad štvorcovej matice ukazuje obsah hlavičkového súboru C++ pre triedu Matrix. Trieda Matrix prichádza so štandardným konštruktorom a deštruktorom pre triedu C++ a metódy sú také, aké by ste očakávali od základného objektu štvorcovej matice:

triedy Matrix
{
verejné:
    Matrix( int inSize );
    virtuálny ~Matrix();
    int getSize( void );
    int getDeterminant( void );
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Maticový operátor+( const Matrix& inAddend );
súkromné:
    int m_veľkosť;
    int[][] m_elements;
};

Ak chcete používať Objective-C++, vaše moduly triedy Objective-C++ musia používať príponu súboru .mm. Toto povie kompilátoru Xcode, že trieda sa má skompilovať pomocou Objective-C++, čo vašej triede umožní používať kľúčové slová jazyka C++. Pomocou Objective-C++ môže vaša aplikácia vytvoriť objekt Matrix na vykonávanie základných operácií, ako je napríklad pridanie dvoch objektov Matrix dohromady. To predpokladá, že zdrojový modul Objective-C++ #importoval súbor C++ Matrix.h:

- (void)addTwoMatrices
{
    Maticová matica Jedna ( 3 ); // Matica 3x3
    Maticová maticaDva( 3 ); // ďalší
    int riadokIndex = 0;
    int colIndex = 0;
    pre (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        for (colIndex=0; colIndex<3; ++colIndex)
        {
            // nastavenie prvkov matice na ich hodnoty
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // nastaví prvky matice dva na iné hodnoty
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    Maticová maticaSúčet = maticaJedna + maticaDva;

S Objective-C++ môžu vaše aplikácie využívať všetky dostupné knižnice tretích strán napísané pre C++.


Pre seniorov: Ako vložiť klipart do snímky programu PowerPoint

Pre seniorov: Ako vložiť klipart do snímky programu PowerPoint

Klipart je predkreslená generická kresba a spoločnosť Microsoft poskytuje veľa súborov klipartov zadarmo so svojimi produktmi Office. Do rozloženia snímky programu PowerPoint môžete vložiť klipart. Najjednoduchší spôsob vloženia klipartov je pomocou jedného zo zástupných symbolov na rozložení snímky: Zobrazte snímku, ktorá obsahuje klipart […]

Pre seniorov: Ako vyplniť farbu v programe Microsoft Excel

Pre seniorov: Ako vyplniť farbu v programe Microsoft Excel

Farba výplne – tiež nazývaná tieňovanie – je farba alebo vzor, ​​ktorý vypĺňa pozadie jednej alebo viacerých buniek hárka programu Excel. Použitie tieňovania môže pomôcť očiam čitateľa sledovať informácie na stránke a môže pridať farbu a vizuálny záujem do pracovného hárka. V niektorých typoch tabuliek, ako je register šekových knižiek, […]

Pridávanie nových kontaktov do služby Act! 2005

Pridávanie nových kontaktov do služby Act! 2005

Na úplne najjednoduchšej úrovni je hlavným účelom ACT! má slúžiť ako miesto na uloženie všetkých kontaktov, s ktorými denne komunikujete. Všetky svoje kontakty môžete pridávať a upravovať z okna Podrobnosti kontaktu, pretože obsahuje všetky informácie, ktoré sa týkajú jedného konkrétneho záznamu a […]

Discord For LuckyTemplates Cheat Sheet

Discord For LuckyTemplates Cheat Sheet

Použite tento Cheat Sheet na skok priamo do používania Discordu. Objavte užitočné roboty Discord, aplikácie, ktoré môžete integrovať, a tipy na rozhovory s hosťami.

OpenOffice.org Cheat Sheet pre LuckyTemplates

OpenOffice.org Cheat Sheet pre LuckyTemplates

Kancelársky balík OpenOffice.org má množstvo nástrojov na uľahčenie pracovného života. Keď pracujete v OpenOffice.org, zoznámte sa s funkčným panelom nástrojov (ktorý vyzerá takmer rovnako vo všetkých aplikáciách) a tlačidlami hlavného panela nástrojov, ktoré vám pomôžu so základnými príkazmi pre väčšinu úloh.

Bombe stroj Alana Turinga

Bombe stroj Alana Turinga

Stroj Bombe Alana Turinga nebol žiadnou formou umelej inteligencie (AI). V skutočnosti to ani nie je skutočný počítač. Prelomilo to kryptografické správy Enigmy a to je všetko. Turingovi to však poskytlo podnet na zamyslenie, čo nakoniec viedlo k dokumentu s názvom „Výpočtové stroje a inteligencia“? ktorý publikoval v 50-tych rokoch a ktorý popisuje […]

Štandardné hardvérové ​​nedostatky pre umelú inteligenciu

Štandardné hardvérové ​​nedostatky pre umelú inteligenciu

Schopnosť vytvoriť modulárny systém má značné výhody, najmä v podnikaní. Možnosť odstraňovania a výmeny jednotlivých komponentov udržuje nízke náklady a zároveň umožňuje postupné zlepšovanie rýchlosti a efektívnosti. Ako pri väčšine vecí však ani tu nie je obed zadarmo. Modularita poskytovaná architektúrou Von Neumann prichádza s niektorými […]

10 Čo robiť a čo robiť pri používaní QuarkXPress

10 Čo robiť a čo robiť pri používaní QuarkXPress

Ak by ste mali vybrať desať ľahko zabudnuteľných, no mimoriadne užitočných vecí, ktoré by ste si o QuarkXPress zapamätali, v nasledujúcom zozname by ste, milý čitateľ, boli práve nimi. Namaste. Hovorte so svojou komerčnou tlačiarňou Všetky tlačové projekty začínajú a končia pri tlačiarni. Je to preto, že iba tlačiarne poznajú svoje obmedzenia a tisíce spôsobov, ako môže byť projekt […]

Pôvod Bitcoinu

Pôvod Bitcoinu

Najdôležitejším aspektom bitcoinu môže byť koncept za ním. Bitcoin vytvoril vývojár Satoshi Nakamoto. Namiesto toho, aby sa Satoshi snažil navrhnúť úplne novú platobnú metódu, aby zvrhol spôsob, akým všetci platíme za veci online, videl Satoshi určité problémy s existujúcimi platobnými systémami a chcel ich riešiť. Koncept […]

Ako chrániť svoje súkromie pri používaní bitcoínov

Ako chrániť svoje súkromie pri používaní bitcoínov

S používaním bitcoinu a digitálnej meny vo všeobecnosti sa viaže určitá úroveň anonymity. Či to môžete označiť ako „dostatočne anonymné“, je osobný názor. Existujú spôsoby, ako chrániť svoje súkromie pri používaní bitcoinov na presun finančných prostriedkov, ale vyžadujú si určité úsilie a plánovanie: Môžete si vygenerovať novú adresu pre […]