„Mac“ programų kūrimas, skirtas „LuckyTemplates“ kodams

„Macintosh“ taikomųjų programų kūrimas reikalauja kūrybiškumo, „Objective-C“ programavimo įgūdžių, šiek tiek kantrybės ir malonaus atkaklumo, kad įdiegtumėte, patobulintumėte ir pateiktumėte savo „Macintosh“ programą gerai veikiančią savo vartotojams. Pakeliui į šią vietą susidursite su tam tikrais iššūkiais, kurie patikrins jūsų programavimo ir problemų sprendimo įgūdžius. Turite susitvarkyti su (be kita ko) delegatų naudojimu, kad įgyvendintumėte programų atgalinius iškvietimus; naudojant Apple ne Objective-C sistemas; ir įtraukti C++ kodą į savo programas.

Atgalinių skambučių įgyvendinimas „Macintosh“ programose

Kuriant „Macintosh“ programas naudojami atgaliniai skambučiai , kad „Mac OS X“ galėtų vykdyti kodą jūsų programoje tam tikroms operacijoms atlikti. Jei kuriate standartinę „Macintosh“ langu arba dokumentu pagrįstą programą, pirmasis kodas, kurį OS X vykdys, yra vienas iš toliau nurodytų atgalinio iškvietimo metodų, kuriuos turite sukurti savo programai, atsižvelgiant į programos dizainą:

  • Langų programos: (negalioja)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Dokumentu pagrįstos programos: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Atgalinis skambinimas yra tiesiog metodas, kurį OS galiausiai vykdo, kai bando pateikti arba nuskaityti informaciją iš jūsų programos. Jūsų programos kodas vykdys „Cocoa“ klasės metodą, kuriame jūsų programa turės galimybę pateikti vienos iš jūsų klasių metodo pavadinimą, kad būtų iškviesta tos klasės objektu, kurį taip pat turės pateikti jūsų programa.

Delegatas yra pagalbininkas objektas, kuriame kakavos klasė naudoja pratęsti klasės funkcionalumą leidžia jums įgyvendinti kodas, kuris kakavos klasė atliks tam tikromis aplinkybėmis. „Cocoa“ klasė tikrina savo deleguotojo objektą (jei jis buvo priskirtas), ar delegatas įgyvendina konkretų metodą. Jei delegatas turi tą metodą, Cocoa klasė vykdo tą metodą; jei įgaliotasis neįgyvendina to konkretaus metodo, Cocoa klasė naudoja numatytąjį savo metodą arba registruoja klaidą. Dauguma delegatų turi įtraukti tam tikrą protokolą, kuris nustato, kokius metodus jie gali įgyvendinti; jūsų kodo įgaliotiniai turi naudoti diegimo metodus iš konkretaus protokolo, kurio deleguotasis tikisi.

Štai keletas „Cocoa“ objektų, kurie gali naudoti delegatus jūsų kodui vykdyti:

  • NSTableView. NSTableView priima delegatą, kuris paklūsta NSTableViewDelegate protokolui. Tai apima 20–30 metodų, kuriuos programos įgaliotasis objektas gali įdiegti, kad palaikytų jūsų programos poreikį žinoti, ką veikia NSTableView. Yra metodai, kurie bus iškviesti jūsų programoje, kai jai reikia žinoti ir reaguoti į veiksmą, pvz., kai vartotojas pasirenka lentelėje arba kai keičiamas stulpelio dydis.

  • NSApplication. Galite priskirti NSApplicationDelegate tvarkyti kai kuriuos metodus, kuriuos gaus NSApplication egzempliorius (jūsų programa). Šie metodai gali būti iškviesti prieš pat arba iškart po to, kai programa vykdo kitą metodą, kad būtų galima paruošti programą.

  • NSWindow. Vienam iš jūsų programos langų priskirtas NSWindowDelegate suteiks jūsų programai galimybę reaguoti į vartotojo dydžio keitimą, perkėlimą ar kitus lango įvykius.

  • NSMeniu. Įdiekite NSMenuDelegate, kad palaikytų įvykius, kurie įvyksta, kai vartotojas sąveikauja su jūsų programos meniu.

Ne Objective-C Frameworks Macintosh programose

„Apple“ teikia daug „Macintosh“ programų kūrimo schemų (kodų bibliotekų), kurias jūsų programa gali iškviesti, kad atliktų tūkstančius operacijų OS X. Daugelį šių sistemų, pvz., PDF rinkinį, sudaro „Objective-C“ klasės, iš kurių jūsų programa gali kurkite ir naudokite objektus savo programose. Tačiau kai kurios iš šių sistemų yra tik funkcijų, kurias gali vykdyti jūsų programa, bibliotekos.

Pavyzdžiui, CFNetwork sistema yra funkcijų rinkinys, kurį jūsų programa gali naudoti, kad būtų galima tiksliai suderinti tinklo ryšius. NSURL klasė suteikia gerą pagrindinių tinklo operacijų rinkinį, kuris puikiai tinka duomenims gauti naudojant URL. Jei programai reikia labiau valdyti jos inicijuojamus tinklo ryšius, turėsite naudoti CFNetwork sistemą ir jos funkcijas. Galite naudoti šį kodą, kad paruoštumėte HTTP užklausą perduoti tam tikru URL:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR("slapukas"); // pridėti konkretų slapuką prie HTTP užklausos
CFStringRef headerFieldValue = CFSTR( "loginID=mano_vartotojo_vardas; slaptažodis=mano_slaptažodis;" );
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(užklausa, httpBody );
// pridėkite slapuką
CFHTTPMessageSetHeaderFieldValue(užklausa, antraštėslauko pavadinimas, antraštėslauko vertė );
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( request );

Kai jūsų kodas gaus nuoseklią užklausą, programa gali atidaryti rašymo srautą, kad užklausa būtų pristatyta į paskirties vietą.

Visose C pagrindu sukurtose Apple sistemose yra funkcijų rinkinys, skirtas tokio tipo žemesnio lygio programavimui atlikti. Jūsų kodas taps sudėtingesnis, tačiau „Apple“ neteikia „Objective-C“ klasių visoms savo sistemoms. Jei jums tikrai reikia funkcionalumo vienoje iš tų sistemų, tai vienintelis būdas pasiekti programos tikslus. Šios sistemos nepateikia Objective-C klasių:

  • Garso įrankių rinkinys

  • CFNetwork

  • Pagrindinis MIDI

  • Pagrindinis tekstas

  • Katalogų paslauga (pvz., LDAP ir atviras katalogas)

  • Saugumas

Jei norite sukurti programas, kurios gali išnaudoti visas OS X ypatybes, turite būti pasirengę palaikyti ne Objective-C kodų bibliotekų naudojimą.

C++ kodas Objective-C Macintosh programose

„Objective-C“ teikia į objektą orientuotas funkcijas, skirtas „Macintosh“ programų kūrimui, pvz., paveldėjimą ir polimorfizmą. Kalba yra pagrįsta C programavimo kalba; todėl galite naudoti savo C programavimo žinias koduodami Objective-C. Objective-C++ yra tilto mechanizmas, leidžiantis Objective-C šaltinio moduliams dirbti su Objective-C++ klasėmis, kurios gali kompiliuoti ir susieti su C++ kodų bibliotekomis.

Šis paprastas kvadratinės matricos pavyzdys rodo C++ antraštės failo, skirto Matrix klasei, turinį. Matricos klasėje yra standartinis C++ klasės konstruktorius ir destruktorius, o metodai yra tokie, kokių tikitės iš pagrindinio kvadratinės matricos objekto:

klasės Matrica
{
viešas:
    Matrica( int inSize );
    virtuali ~Matrica();
    int getSize( void );
    int getDeterminant( void );
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Matricos operatorius+( const Matrica& inAddend );
privatus:
    int m_dydis;
    int[][] m_elementai;
};

Norint naudoti Objective-C++, jūsų Objective-C++ klasės moduliai turi naudoti failo plėtinį .mm. Tai nurodo „Xcode“ kompiliatoriui, kad klasė turi būti sudaryta naudojant „Objective-C++“, o tai leis jūsų klasei naudoti C++ kalbos raktinius žodžius. Naudodama „Objective-C++“ programa gali sukurti „Matrix“ objektą, kad atliktų pagrindines operacijas, pvz., pridėtų du „Matrix“ objektus. Daroma prielaida, kad Objective-C++ šaltinio modulis #importavo C++ Matrix.h failą:

- (negalioja) pridėti dvi matricas
{
    Matrica matrixOne(3); // 3x3 matrica
    Matricos matricaTwo( 3 ); // kitas
    int rowIndex = 0;
    int colIndeksas = 0;
    skirta (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        skirta (colIndex=0; colIndex<3; ++colIndex)
        {
            // nustatyti matricos elementus į jų reikšmes
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // nustatyti matricos du elementus į kai kurias kitas reikšmes
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    Matricos matricos suma = matricaOne + matricaTwo;

Naudodami „Objective-C++“, jūsų programos gali pasinaudoti visomis turimomis trečiųjų šalių bibliotekomis, sukurtomis C++.


Kaip naudoti antraštes ir poraštes „Microsoft Word“.

Kaip naudoti antraštes ir poraštes „Microsoft Word“.

„Microsoft Word“ galite sukurti antraštes ir poraštes, kurios kiekvieno puslapio viršuje arba apačioje kartotų tą patį tekstą.

Kaip prisijungti prie „Discord“ serverio

Kaip prisijungti prie „Discord“ serverio

Sužinokite, kaip prisijungti prie „Discord“ serverio, kad galėtumėte prisijungti prie bendruomenių ir dalintis savo interesais.

Kaip nustatyti „Discord“ serverio paskyrą

Kaip nustatyti „Discord“ serverio paskyrą

Pirmasis jūsų darbas naudojant šią naują platformą – pirmiausia prisistatyti „Discord“. Sužinokite, kaip nustatyti „Discord“ serverio paskyrą.

Kaip dalytis turiniu su „Zoom“ susitikimo dalyviais

Kaip dalytis turiniu su „Zoom“ susitikimo dalyviais

Sužinokite, kaip bendrinti ekraną „Zoom“ platformoje su kitais, kaip leisti jiems valdyti jūsų ekraną ir kaip paprašyti valdyti pagrindinio kompiuterio ekraną.

Kaip rašyti Excel formules

Kaip rašyti Excel formules

Formulė yra matematinis skaičiavimas. Sužinokite, kaip rašyti Excel formules ir efektyviai jas naudoti.

Kaip pakviesti žmones į savo „Discord“ serverį

Kaip pakviesti žmones į savo „Discord“ serverį

Sužinokite, kaip išsiųsti kvietimus ir sukurti savo internetinę bendruomenę „Discord“ serveryje. Taip pat sužinokite, kaip srautinis perdavimas padeda skleisti informaciją jūsų „Discord“.

Kaip pakeisti pastraipų eilučių tarpus „Microsoft Word“.

Kaip pakeisti pastraipų eilučių tarpus „Microsoft Word“.

Sužinokite, kaip galima lengvai ir efektyviai reguliuoti tarpus tarp eilučių „Microsoft Word“ naudojant įvairias nustatymų parinktis.

Kaip sukurti kompiuterio failo ar aplanko nuorodą

Kaip sukurti kompiuterio failo ar aplanko nuorodą

Sužinokite, kaip lengvai sukurti kompiuterio failo ar aplanko nuorodą darbalaukyje. Šis procesas suteikia greitą prieigą prie dažniausiai naudojamų programų ir dokumentų.

Senjorams: kaip įterpti iliustraciją į „PowerPoint“ skaidrę

Senjorams: kaip įterpti iliustraciją į „PowerPoint“ skaidrę

Iliustracija yra iš anksto nupieštas bendras meno kūrinys, o „Microsoft“ su „Office“ produktais nemokamai teikia daug iliustracijų failų. Galite įterpti iliustraciją į savo „PowerPoint“ skaidrės maketą. Lengviausias būdas įterpti iliustraciją yra naudoti vieną iš vietos rezervavimo ženklų skaidrės makete: Rodyti skaidrę, kurioje yra iliustracija […]

Senjorams: kaip užpildyti spalvą „Microsoft Excel“.

Senjorams: kaip užpildyti spalvą „Microsoft Excel“.

Užpildymo spalva (dar vadinama šešėliavimu) yra spalva arba raštas, užpildantis vienos ar kelių „Excel“ darbalapio langelių foną. Tamsinimas gali padėti skaitytojo akims sekti informaciją visame puslapyje ir suteikti darbalapiui spalvų bei vizualinio susidomėjimo. Kai kurių tipų skaičiuoklėse, pavyzdžiui, čekių knygelės registre, […]