Maci rakenduste arendus LuckyTemplatesi petulehe jaoks

Macintoshi rakenduste arendamiseks on vaja loovust, Objective-C programmeerimisoskusi, kannatlikkust ja kena järjekindlust, et teie Macintoshi rakendust oma kasutajatele heas töökorras juurutada, täiustada ja edastada. Teel sellesse sihtkohta puutute kokku väljakutsetega, mis panevad proovile teie programmeerimis- ja probleemide lahendamise oskused. Peate (muu hulgas) hakkama saama delegaatide kasutamisega rakenduste tagasikutsumiste rakendamiseks; Apple'i mitte-Objective-C raamistike kasutamine; ja lisades oma rakendustesse C++ koodi.

Tagasihelistuste rakendamine Macintoshi rakendustes

Macintoshi rakenduste arendus kasutab tagasihelistusi, et võimaldada Mac OS X-il käivitada teie rakenduses teatud toimingute jaoks koodi. Kui loote standardse Macintoshi akna- või dokumendipõhise rakenduse, siis esimene kood, mille OS X käivitab, on üks järgmistest tagasihelistamismeetoditest, mille peate oma rakenduse jaoks olenevalt rakenduse kujundusest looma.

  • Aknapõhised rakendused: (void)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Dokumendipõhised rakendused: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Tagasihelistamine on lihtsalt meetod, mille OS lõpuks käivitab, kui ta proovib teie rakendusest teavet edastada või sealt hankida. Teie rakenduse kood käivitab meetodi Cocoa klassi jaoks, kus teie rakendusel on võimalus esitada ühe teie klassi meetodi nimi, et seda saaks kutsuda selle klassi objektil, mille teie rakendus peab samuti esitama.

Delegaat on opastusobjektia, mille Cocoa klassi kasutab laiendada funktsionaalsust klassi, võimaldades teil rakendada kood, mida Cocoa klassi täidab teatud tingimustel. Cocoa klass kontrollib oma delegaadiobjekti (kui see on määratud), kas delegaat pakub konkreetse meetodi rakendamist. Kui delegaadil on see meetod, käivitab Cocoa klass selle meetodi; kui delegaat seda konkreetset meetodit ei rakenda, kasutab Cocoa klass kas oma vaikemeetodit või logib vea. Enamik delegaate peab lisama konkreetse protokolli, mis määrab, milliseid meetodeid nad võivad rakendada; teie koodi delegaadid peavad kasutama konkreetse protokolli rakendusmeetodeid, mida delegaat eeldab.

Siin on mõned Cocoa objektid, mis võivad teie koodi käivitamiseks kasutada delegaate:

  • NSTableView. NSTableView võtab vastu delegaadi, kes järgib NSTableViewDelegate protokolli. See hõlmab 20–30 meetodit, mida teie rakenduse delegeeritud objekt saab rakendada, et toetada teie rakenduse vajadust teada, mida NSTableView teeb. On meetodeid, mida teie rakenduses kutsutakse välja siis, kui see peab toimingut teadma ja neile reageerima, näiteks kui kasutaja teeb tabelis valiku või kui veeru suurust muudetakse.

  • NSApplication. Saate määrata NSApplicationDelegate'i, et hallata mõnda meetodit, mille NSApplication eksemplar (teie rakendus) saab. Neid meetodeid võidakse kutsuda vahetult enne või vahetult pärast seda, kui teie rakendus käivitab mõne muu meetodi, et teie rakendust saaks ette valmistada.

  • NSWindow. Ühele teie rakenduse aknale määratud NSWindowDelegate annab teie rakendusele võimaluse reageerida kasutaja suuruse muutmisele, teisaldamisele või muudele aknasündmustele.

  • NSMenu. Rakendate NSMenuDelegate'i, et toetada sündmusi, mis juhtuvad, kui kasutaja suhtleb teie rakenduse menüüdega.

Mitteobjektiiv-C raamistikud Macintoshi rakendustes

Apple pakub palju Macintoshi rakenduste arendusraamistikke (kooditeeke), mida teie rakendus saab kutsuda tuhandete operatsioonide tegemiseks operatsioonisüsteemis OS X. Paljud neist raamistikest, näiteks PDF-komplekt, koosnevad Objective-C klassidest, millest teie rakendus saab luua ja kasutada oma rakendustes objekte. Mõned neist raamistikest on aga vaid funktsioonide teegid, mida teie rakendus saab täita.

Näiteks CFNetworki raamistik on funktsioonide komplekt, mida teie rakendus saab kasutada võrguühenduste peenhäälestamiseks. NSURL-i klass pakub head komplekti põhilisi võrgutoiminguid, mis sobivad suurepäraselt andmete toomiseks URL-i abil. Kui teie rakendus nõuab suuremat kontrolli selle algatatud võrgusuhtluse üle, peate kasutama CFNetworki raamistikku ja selle funktsioone. HTTP-päringu ettevalmistamiseks konkreetsele URL-ile edastamiseks võite kasutada järgmist koodi:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR("küpsis"); // lisage HTTP päringule konkreetne küpsis
CFStringRef headerFieldValue = CFSTR( "loginID=minu_kasutaja_nimi; parool=minu_parool;" );
CFStringRef url = CFSTR("www.diabeticpad.com");
CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL );
CFStringRef requestMethod = CFSTR( "GET" );
CFHTTPMessageRef taotlus = CFHTTPMessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 );
CFHTTPMessageSetBody(päring, httpBody );
// lisage küpsis
CFHTTPMessageSetHeaderFieldValue(päring, päiseväljanimi, päiseväljaVäärtus );
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( request );

Kui teie koodil on järjestatud taotlus, saab teie rakendus avada kirjutusvoo, et päring sihtkohta toimetada.

Kõik C-põhised Apple'i raamistikud pakuvad seda tüüpi madalama taseme programmeerimise teostamiseks funktsioonide komplekti. Teie kood muutub keerulisemaks, kuid Apple ei paku kõigi oma raamistike jaoks Objective-C klasse. Kui vajate tõesti ühes neist raamistikest saadaolevaid funktsioone, on see ainus viis oma rakenduse eesmärkide saavutamiseks. Järgmised raamistikud ei paku Objective-C klasse:

  • Audio tööriistakast

  • CFNetwork

  • Core MIDI

  • Põhitekst

  • Kataloogiteenus (nt LDAP ja avatud kataloog)

  • Turvalisus

Kui soovite luua rakendusi, mis saavad OS X-i funktsioone täielikult ära kasutada, peate olema valmis toetama mitte-Objective-C kooditeeke.

C++ kood Objective-C Macintoshi rakendustes

Objective-C pakub Macintoshi rakenduste arendamiseks objektorienteeritud funktsioone, nagu pärimine ja polümorfism. Keel põhineb C programmeerimiskeelel; Seetõttu saate Objective-C kodeerimiseks kasutada oma C-programmeerimise teadmisi. Objective-C++ on sildmehhanism, mis võimaldab Objective-C lähtemoodulitel töötada Objective-C++ klassidega, mis võivad kompileerida ja linkida C++ kooditeekidega.

Järgmine lihtne ruutmaatriksi näide näitab maatriksi klassi C++ päisefaili sisu. Klass Matrix on varustatud C++ klassi jaoks mõeldud standardse konstruktori ja destruktoriga ning meetodid on sellised, mida eeldate põhilise ruutmaatriksobjekti puhul:

klassi Matrix
{
avalik:
    Matrix( int inSize );
    virtuaalne ~Matrix();
    int getSize( void );
    int getDeterminant( void );
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Maatriksi operaator+( const Maatriks& inAddend );
privaatne:
    int m_size;
    int[][] m_elemendid;
};

Objective-C++ kasutamiseks peavad teie Objective-C++ klassi moodulid kasutama faililaiendit .mm. See annab Xcode'i kompilaatorile teada, et klass tuleb kompileerida kasutades Objective-C++, mis võimaldab teie klassil kasutada C++ keele märksõnu. Kasutades Objective-C++, võib teie rakendus luua põhitoimingute tegemiseks maatriksiobjekti, näiteks kahe maatriksiobjekti liitmiseks. See eeldab, et Objective-C++ lähtemoodul on #importinud faili C++ Matrix.h:

- (kehtetu) lisage kaks maatriksit
{
    Matrix matrixOne( 3 ); // 3x3 maatriks
    maatriksmaatriksTwo( 3 ); // teine
    int rowIndeks = 0;
    int colIndeks = 0;
    jaoks (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        jaoks (colIndex=0; colIndex<3; ++colIndex)
        {
            // seab maatriksi elemendid nende väärtustele
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // määrake maatriksi kahe elemendid mõnele muule väärtusele
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    MaatriksmaatriksSum = maatriksOne + maatriksKaks;

Objective-C++ abil saavad teie rakendused ära kasutada kõiki saadaolevaid C++ jaoks kirjutatud kolmandate osapoolte teeke.


Eakate jaoks: kuidas sisestada lõikepilte PowerPointi slaidile

Eakate jaoks: kuidas sisestada lõikepilte PowerPointi slaidile

Lõikepilt on eeljoonistatud üldine kunstiteos ja Microsoft pakub oma Office'i toodetega tasuta palju lõikepildifaile. Saate sisestada oma PowerPointi slaidipaigutusse lõikepilte. Lihtsaim viis lõikepildi sisestamiseks on kasutada slaidipaigutamisel üht kohatäitjat: kuvage lõikepilte sisaldav slaid […]

Eakate jaoks: kuidas täita värvi Microsoft Excelis

Eakate jaoks: kuidas täita värvi Microsoft Excelis

Täitevärv (mida nimetatakse ka varjutamiseks) on värv või muster, mis täidab ühe või mitme Exceli töölehe lahtri tausta. Varjutuse rakendamine võib aidata lugejal kogu lehel teavet jälgida ning lisada töölehel värvi ja visuaalset huvi. Teatud tüüpi tabelites, näiteks tšekiraamatute registris, […]

Uute kontaktide lisamine seadusesse! 2005

Uute kontaktide lisamine seadusesse! 2005

Kõige lihtsamal tasandil ACTi peamine eesmärk! on koht, kuhu salvestada kõik kontaktid, kellega igapäevaselt suhtlete. Saate kõiki oma kontakte lisada ja muuta kontaktandmete aknas, kuna see sisaldab kogu teavet, mis puudutab ühte konkreetset kirjet ja […]

Discord For LuckyTemplates petuleht

Discord For LuckyTemplates petuleht

Kasutage seda petulehte, et otse Discordi kasutama hakata. Avastage kasulikke Discordi roboteid, rakendusi, mida saate integreerida, ja näpunäiteid külaliste intervjueerimiseks.

OpenOffice.org LuckyTemplatesi petulehe jaoks

OpenOffice.org LuckyTemplatesi petulehe jaoks

OpenOffice.org kontorikomplektis on palju tööriistu, mis muudavad tööelu lihtsamaks. Kui töötate saidil OpenOffice.org, tutvuge funktsioonide tööriistariba (mis näeb kõigis rakendustes üsna ühesugune välja) ja peamiste tööriistariba nuppudega, et saada abi põhikäskudega enamiku toimingute jaoks.

Alan Turingi pommimasin

Alan Turingi pommimasin

Alan Turingi Bombe masin ei olnud tehisintellekti (AI) vorm. Tegelikult pole see isegi päris arvuti. See purustas Enigma krüptograafilised sõnumid ja see on kõik. Siiski pakkus see Turingile mõtlemisainet, mis viis lõpuks artiklini "Arvutusmasinad ja intelligentsus". mille ta avaldas 1950. aastatel ja kirjeldab […]

Tehisintellekti standardsed riistvarapuudused

Tehisintellekti standardsed riistvarapuudused

Modulaarse süsteemi loomise võimalusel on olulisi eeliseid, eriti ettevõtluses. Üksikute komponentide eemaldamise ja asendamise võimalus hoiab kulud madalal, võimaldades samal ajal järk-järgult parandada nii kiirust kui ka tõhusust. Samas nagu enamiku asjadega, tasuta lõunasööki pole olemas. Von Neumanni arhitektuuri pakutav modulaarsus sisaldab mõningaid […]

10 toimingut ja keeldu QuarkXPressi kasutamisel

10 toimingut ja keeldu QuarkXPressi kasutamisel

Kui sa peaksid QuarkXPressi kohta välja valima kümme kergesti unustatavat, kuid ülikasulikku asja, siis järgmises loendis, hea lugeja, oleksid just need. Namaste. Rääkige oma kommertsprinteriga Kõik prindiprojektid algavad ja lõpevad printeriga. Seda seetõttu, et ainult printerid teavad oma piiranguid ja tuhandeid viise, kuidas projekt võib olla […]

Bitcoini päritolu

Bitcoini päritolu

Bitcoini kõige olulisem aspekt võib olla selle kontseptsioon. Bitcoini lõi arendaja Satoshi Nakamoto. Selle asemel, et püüda välja töötada täiesti uus makseviis, et kaotada viis, kuidas me kõik veebis asjade eest maksame, nägi Satoshi olemasolevates maksesüsteemides teatud probleeme ja soovis nendega tegeleda. Mõiste […]

Kuidas kaitsta oma privaatsust Bitcoini kasutamisel

Kuidas kaitsta oma privaatsust Bitcoini kasutamisel

Teatud anonüümsuse tase on seotud bitcoini ja digitaalse valuuta kasutamisega üldiselt. See, kas saate selle märgistada "piisavalt anonüümseks", on isiklik arvamus. Kui kasutate bitcoine raha ümberpaigutamiseks, on privaatsuse kaitsmiseks viise, kuid need nõuavad pingutust ja planeerimist: saate luua uue aadressi […]