Mac lietojumprogrammu izstrāde LuckyTemplates apkrāptu lapai

Macintosh lietojumprogrammu izstrādei ir nepieciešama radošums, Objective-C programmēšanas prasmes, zināma pacietība un laba neatlaidība, lai ieviestu, pilnveidotu un nodrošinātu lietotājiem jūsu Macintosh lietojumprogrammu labā darba kārtībā. Ceļā uz šo galamērķi jūs saskarsities ar dažiem izaicinājumiem, kas pārbaudīs jūsu programmēšanas un problēmu risināšanas prasmes. Jums ir jāsaprot (cita starpā) ar delegātu izmantošanu lietojumprogrammu atzvanīšanas ieviešanai; izmantojot Apple ietvarus, kas nav Objective-C; un C++ koda iekļaušanu savās lietotnēs.

Atzvanīšanas ieviešana Macintosh lietojumprogrammās

Macintosh lietojumprogrammu izstrādē tiek izmantoti atzvani, lai Mac OS X varētu izpildīt kodu jūsu lietotnē noteiktām darbībām. Ja veidojat standarta Macintosh logu vai dokumentu lietojumprogrammu, pats pirmais kods, ko OS X izpildīs, ir vienā no tālāk norādītajām atzvanīšanas metodēm, kas ir jāizveido savai lietotnei atkarībā no programmas dizaina.

  • Uz logiem balstītas lietojumprogrammas: (void)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Uz dokumentiem balstītas lietotnes: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Atzvanīšana ir vienkārši metode, ko OS galu galā izpilda, mēģinot piegādāt vai izgūt informāciju no jūsu lietotnes. Jūsu lietojumprogrammas kods izpildīs metodi Cocoa klasei, kurā jūsu lietotnei būs iespēja norādīt vienas klases metodes nosaukumu, lai tā tiktu izsaukta šīs klases objektā, kas arī jūsu lietotnei būs jānorāda.

Delegāts ir palīgs objekts, kurā kakao klases izmanto, lai paplašinātu funkcionalitāti klasē, ļaujot jums ieviest kodeksu, kurā kakao klase izpildīt noteiktos apstākļos. Cocoa klase pārbauda savu delegāta objektu (ja tāds ir piešķirts), lai noskaidrotu, vai delegāts nodrošina noteiktas metodes ieviešanu. Ja delegātam ir šī metode, Cocoa klase izpilda šo metodi; ja delegāts neievieš šo konkrēto metodi, Cocoa klase vai nu izmanto savu noklusējuma metodi, vai reģistrē kļūdu. Lielākajai daļai delegātu ir jāiekļauj konkrēts protokols, kas nosaka, kādas metodes viņi drīkst ieviest; jūsu koda delegātiem ir jāizmanto ieviešanas metodes no konkrētā protokola, ko delegāts sagaida.

Šeit ir daži no Cocoa objektiem, kas var izmantot delegātus, lai izpildītu jūsu kodu:

  • NSTableView. NSTableView pieņem delegātu, kas pakļaujas NSTableViewDelegate protokolam. Tas ietver 20–30 metodes, kuras jūsu lietotnes deleģētais objekts var ieviest, lai atbalstītu jūsu lietotnes nepieciešamību zināt, ko dara NSTableView. Ir metodes, kas jūsu lietojumprogrammā tiks izsauktas, kad tai ir jāzina darbības un jāreaģē uz tām, piemēram, kad lietotājs tabulā veic atlasi vai maina kolonnas izmērus.

  • NSApplication. Varat piešķirt NSApplicationDelegate, lai tas apstrādātu dažas metodes, kuras saņems NSApplication instance (jūsu lietojumprogramma). Šīs metodes var izsaukt tieši pirms vai tūlīt pēc tam, kad jūsu lietojumprogramma izpilda citu metodi, lai varētu sagatavot jūsu lietotni.

  • NSWindow. Vienam no jūsu lietojumprogrammas logiem piešķirtais NSWindowDelegate dos jūsu lietotnei iespēju reaģēt uz lietotāja lieluma maiņu, pārvietošanu vai citiem loga notikumiem.

  • NSMenu. Jūs ieviešat NSMenuDelegate, lai atbalstītu notikumus, kas notiek, kad lietotājs mijiedarbojas ar jūsu lietojumprogrammas izvēlnēm.

Non-Objective-C ietvari Macintosh lietojumprogrammās

Apple nodrošina daudzas Macintosh lietojumprogrammu izstrādes sistēmas (koda bibliotēkas), kuras jūsu lietotne var izsaukt, lai veiktu tūkstošiem operāciju operētājsistēmā OS X. Daudzas no šīm ietvariem, piemēram, PDF komplekts, sastāv no Objective-C klasēm, no kurām jūsu lietotne var izveidot un izmantot objektus savās lietojumprogrammās. Tomēr daži no šiem ietvariem ir tikai to funkciju bibliotēkas, kuras var izpildīt jūsu lietotne.

Piemēram, CFNetwork ietvars ir funkciju kopums, ko jūsu lietotne var izmantot, lai veiktu precizētus tīkla savienojumus. NSURL klase nodrošina labu pamata tīkla darbību kopumu, kas ir lieliski piemērots datu izgūšanai, izmantojot URL. Ja jūsu lietotnei ir nepieciešama lielāka kontrole pār tās uzsāktajiem tīkla sakariem, jums būs jāizmanto CFNetwork sistēma un tās funkcijas. Varat izmantot šo kodu, lai sagatavotu HTTP pieprasījumu pārsūtīšanai uz noteiktu URL:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR("Sīkfails"); // pievienot konkrētu sīkfailu HTTP pieprasījumam
CFStringRef headerFieldValue = CFSTR("loginID=mans_lietotāja_vārds; parole=mana_parole;" );
CFStringRef url = CFSTR("www.diabeticpad.com");
CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL );
CFStringRef requestMethod = CFSTR( "GET" );
CFHTTPMessageRef pieprasījums = CFHTTPMessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 );
CFHTTPMessageSetBody(pieprasījums, httpBody);
// pievieno cepumu
CFHTTPMessageSetHeaderFieldValue(pieprasījums, galvenes lauka nosaukums, galvenes laukaVērtība);
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( pieprasījums );

Kad kods ir saņēmis serializētu pieprasījumu, jūsu lietotne var atvērt rakstīšanas straumi, lai nosūtītu pieprasījumu galamērķim.

Visas uz C balstītās Apple sistēmas nodrošina funkciju kopumu šāda veida zemāka līmeņa programmēšanas veikšanai. Jūsu kods kļūs sarežģītāks, taču Apple nenodrošina Objective-C klases visiem saviem ietvariem. Ja jums patiešām ir nepieciešama funkcionalitāte, kas pieejama kādā no šīm sistēmām, tas ir vienīgais veids, kā sasniegt savas lietotnes mērķus. Tālāk norādītie ietvari nenodrošina Objective-C klases:

  • Audio rīklodziņš

  • CFNetwork

  • Galvenais MIDI

  • Pamatteksts

  • Direktoriju pakalpojums (piemēram, LDAP un Open Directory)

  • Drošība

Ja vēlaties izveidot lietotnes, kas var pilnībā izmantot OS X funkcijas, jums jābūt gatavam atbalstīt koda bibliotēku, kas nav Objective-C, izmantošanu.

C++ kods Objective-C Macintosh lietojumprogrammās

Objective-C nodrošina objektorientētas funkcijas Macintosh lietojumprogrammu izstrādei, piemēram, pārmantošanu un polimorfismu. Valoda ir balstīta uz C programmēšanas valodu; tāpēc varat izmantot savas C programmēšanas zināšanas, lai kodētu Objective-C ietvaros. Objective-C++ ir tilta mehānisms, kas ļauj Objective-C avota moduļiem strādāt ar Objective-C++ klasēm, kuras varētu apkopot un saistīt ar C++ kodu bibliotēkām.

Šis vienkāršais kvadrātveida matricas piemērs parāda C++ galvenes faila saturu Matrix klasei. Matrix klasei ir standarta konstruktors un destruktors C++ klasei, un metodes ir tādas, ko jūs varētu sagaidīt pamata kvadrātveida matricas objektam:

klases Matrica
{
publiski:
    Matrica( int inSize );
    virtuālā ~Matrix();
    int getSize(spēkā);
    int getDeterminant(spēkā);
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Matricas operators+( const Matrix& inAddend );
Privāts:
    int m_size;
    int[][] m_elements;
};

Lai izmantotu Objective-C++, jūsu Objective-C++ klases moduļiem ir jāizmanto faila paplašinājums .mm. Tas norāda Xcode kompilatoram, ka klase ir jākompilē, izmantojot Objective-C++, kas ļaus jūsu klasei izmantot C++ valodas atslēgvārdus. Izmantojot Objective-C++, jūsu lietotne var izveidot Matrix objektu, lai veiktu pamatdarbības, piemēram, pievienotu divus Matrix objektus. Tas pieņem, ka Objective-C++ avota modulis ir #importējis C++ Matrix.h failu:

- (neesošs) pievienojiet divas matricas
{
    Matrix matrixOne(3); // 3x3 matrica
    Matrix matrixTwo( 3 ); // cits
    int rowIndekss = 0;
    int colIndekss = 0;
    priekš (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        priekš (colIndex=0; colIndex<3; ++colIndex)
        {
            // iestatīt matricas elementus uz to vērtībām
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // iestatiet matricas divi elementi uz dažām citām vērtībām
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    Matrix matrixSum = matrixOne + matrixTwo;

Izmantojot Objective-C++, jūsu lietotnes var izmantot visas pieejamās trešo pušu bibliotēkas, kas rakstītas C++.


Senioriem: kā ievietot klipkopu PowerPoint slaidā

Senioriem: kā ievietot klipkopu PowerPoint slaidā

Klipkopas ir iepriekš zīmēti vispārīgi mākslas darbi, un Microsoft piedāvā daudzus klipkopas failus bez maksas ar saviem Office produktiem. Varat ievietot klipkopas savā PowerPoint slaidu izkārtojumā. Vienkāršākais veids, kā ievietot klipkopas, ir izmantot vienu no vietturi slaidu izkārtojumā: Parādiet slaidu, kurā ir klipkopa […]

Senioriem: Kā aizpildīt krāsu programmā Microsoft Excel

Senioriem: Kā aizpildīt krāsu programmā Microsoft Excel

Aizpildījuma krāsa (saukta arī par ēnojumu) ir krāsa vai raksts, kas aizpilda vienas vai vairāku Excel darblapas šūnu fonu. Aizēnojuma izmantošana var palīdzēt lasītāja acīm sekot informācijai visā lapā un var pievienot darblapai krāsu un vizuālu interesi. Dažos izklājlapu veidos, piemēram, čeku grāmatiņas reģistrā, […]

Jaunu kontaktu pievienošana likumā! 2005. gads

Jaunu kontaktu pievienošana likumā! 2005. gads

Vienkāršākajā līmenī ACT galvenais mērķis! kalpo kā vieta, kur glabāt visus kontaktus, ar kuriem ikdienā sazināties. Jūs varat pievienot un rediģēt visas savas kontaktpersonas kontaktinformācijas logā, jo tajā ir visa informācija, kas attiecas uz vienu konkrētu ierakstu un […]

Discord For LuckyTemplates apkrāptu lapa

Discord For LuckyTemplates apkrāptu lapa

Izmantojiet šo apkrāptu lapu, lai tieši sāktu lietot Discord. Atklājiet noderīgus Discord robotprogrammatūras, integrētās lietotnes un padomus viesu intervēšanai.

OpenOffice.org LuckyTemplates apkrāptu lapai

OpenOffice.org LuckyTemplates apkrāptu lapai

OpenOffice.org biroja komplektā ir daudz rīku, kas atvieglo darba dzīvi. Strādājot vietnē OpenOffice.org, iepazīstieties ar funkciju rīkjoslu (kas visās lietojumprogrammās izskatās gandrīz vienādi) un galvenās rīkjoslas pogas, lai palīdzētu ar pamata komandām lielākajai daļai uzdevumu.

Alana Tjūringa bumbas mašīna

Alana Tjūringa bumbas mašīna

Alana Tjūringa Bombe mašīna nebija nekāds mākslīgā intelekta (AI) veids. Patiesībā tas pat nav īsts dators. Tas lauza Enigma kriptogrāfiskos ziņojumus, un tas arī viss. Tomēr Tjūringam tas deva vielu pārdomām, kā rezultātā galu galā tika izveidots raksts ar nosaukumu “Datortehnika un izlūkdati”. ko viņš publicēja pagājušā gadsimta piecdesmitajos gados un kurā aprakstīts […]

Standarta aparatūras trūkumi mākslīgajam intelektam

Standarta aparatūras trūkumi mākslīgajam intelektam

Spējai izveidot moduļu sistēmu patiešām ir ievērojamas priekšrocības, īpaši biznesā. Iespēja noņemt un nomainīt atsevišķus komponentus samazina izmaksas, vienlaikus ļaujot pakāpeniski uzlabot gan ātrumu, gan efektivitāti. Tomēr, tāpat kā lielākajā daļā lietu, bezmaksas pusdienu nav. Von Neumann arhitektūras nodrošinātā modularitāte ir saistīta ar dažiem […]

10 Ko drīkst un ko nedrīkst, lietojot QuarkXPress

10 Ko drīkst un ko nedrīkst, lietojot QuarkXPress

Ja jums būtu jāizvēlas desmit viegli aizmirstamas, bet ārkārtīgi noderīgas lietas, ko atcerēties par QuarkXPress, nākamajā sarakstā, dārgais lasītāj, tās būtu tās. Namaste. Sazinieties ar savu komerciālo printeri Visi drukas projekti sākas un beidzas ar printeri. Tas ir tāpēc, ka tikai printeri zina savus ierobežojumus un tūkstošiem veidu, kā projekts var būt […]

Bitcoin izcelsme

Bitcoin izcelsme

Vissvarīgākais bitkoina aspekts var būt aiz tā esošā koncepcija. Bitcoin izveidoja izstrādātājs Satoshi Nakamoto. Tā vietā, lai mēģinātu izstrādāt pilnīgi jaunu maksājuma veidu, lai izjauktu veidu, kā mēs visi maksājam par lietām tiešsaistē, Satoshi redzēja noteiktas problēmas esošajās maksājumu sistēmās un vēlējās tās risināt. Jēdziens […]

Kā aizsargāt savu privātumu, izmantojot Bitcoin

Kā aizsargāt savu privātumu, izmantojot Bitcoin

Zināms anonimitātes līmenis ir saistīts ar bitcoin un digitālās valūtas izmantošanu kopumā. Tas, vai varat to atzīmēt kā “pietiekami anonīmu”, ir personisks viedoklis. Ir veidi, kā aizsargāt savu privātumu, izmantojot bitcoīnu līdzekļu pārvietošanai, taču tas prasa zināmas pūles un plānošanu: varat izveidot jaunu adresi […]