Zhvillimi i aplikacionit Mac për Fletën e mashtrimit të LuckyTemplates

Zhvillimi i aplikacionit Macintosh kërkon kreativitet, aftësi programimi Objective-C, pak durim dhe një ndihmë të këndshme këmbënguljeje për të zbatuar, rafinuar dhe shpërndarë aplikacionin tuaj Macintosh në gjendje të mirë pune te përdoruesit tuaj. Në rrugën tuaj për në këtë destinacion, do të hasni disa sfida që do të testojnë aftësitë tuaja programuese dhe zgjidhjen e problemeve. Ju duhet të kuptoni (ndër të tjera) përdorimin e delegatëve për të zbatuar kthimin e thirrjeve të aplikacionit; duke përdorur korniza jo-Objective-C nga Apple; dhe duke inkorporuar kodin C++ në aplikacionet tuaja.

Zbatimi i kthimeve të thirrjeve në aplikacionet Macintosh

Zhvillimi i aplikacionit Macintosh përdor kthimin e thirrjeve për të lejuar Mac OS X të ekzekutojë kodin brenda aplikacionit tuaj për operacione specifike. Nëse po krijoni një aplikacion standard të bazuar në dritare ose dokument Macintosh, kodi i parë që do të ekzekutojë OS X është në një nga metodat e mëposhtme të kthimit të thirrjes që duhet të krijoni për aplikacionin tuaj, në varësi të dizajnit të aplikacionit:

  • Aplikacionet e bazuara në dritare: (void)applicationDidFinishLaunching:(NSNotification*)aNjoftim

  • Aplikacionet e bazuara në dokumente: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Një telefonatë është thjesht një metodë që OS përfundimisht e ekzekuton ndërsa po përpiqet të ofrojë ose të marrë informacion nga aplikacioni juaj. Kodi juaj i aplikacionit do të ekzekutojë një metodë për një klasë Kakao, ku aplikacioni juaj do të ketë mundësinë të japë emrin e një metode të njërës prej klasave tuaja, për t'u thirrur në një objekt të asaj klase që aplikacioni juaj gjithashtu do të duhet të ofrojë.

Një delegat është një objekt ndihmës, të cilin një klasë Cocoa e përdor për të zgjeruar funksionalitetin e klasës duke ju lejuar të zbatoni kodin që klasa Cocoa do të ekzekutojë në rrethana të caktuara. Një klasë Kakao kontrollon objektin e saj të deleguar (nëse një i është caktuar) nëse delegati ofron një zbatim të një metode specifike. Nëse delegati e ka atë metodë, klasa Kakao e ekzekuton atë metodë; nëse delegati nuk e zbaton atë metodë specifike, klasa Kakao ose përdor një metodë të paracaktuar të saj ose regjistron një gabim. Shumica e delegatëve duhet të përfshijnë një protokoll të veçantë që përcakton se cilat metoda mund të zbatojnë; delegatët e kodit tuaj duhet të përdorin metodat e implementimit nga protokolli specifik që pret delegati.

Këtu janë disa nga objektet e Kakaos që mund të përdorin delegatë për të ekzekutuar kodin tuaj:

  • NSTableView. NSTableView pranon një delegat që i bindet protokollit NSTableViewDelegate. Kjo përfshin 20 deri në 30 metoda që objekti i deleguar i aplikacionit tuaj mund të zbatojë për të mbështetur nevojën e aplikacionit tuaj për të ditur se çfarë po bën NSTableView. Ka metoda që do të thirren në aplikacionin tuaj kur duhet të dijë dhe të reagojë ndaj një veprimi, si p.sh. kur një përdorues bën një përzgjedhje në tabelë ose kur madhësia e një kolone ndryshohet.

  • Aplikimi NSA. Ju mund të caktoni një NSApplicationDelegate për të trajtuar disa nga metodat që do të marrë një shembull NSApplication (aplikacioni juaj). Këto metoda mund të thirren pak përpara ose menjëherë pasi aplikacioni juaj të ekzekutojë një metodë tjetër, në mënyrë që aplikacioni juaj të mund të përgatitet.

  • NSWindow. Një NSWindowDelegate i caktuar në një nga dritaret e aplikacionit tuaj do t'i japë aplikacionit tuaj një shans për t'iu përgjigjur ndryshimit të madhësisë, lëvizjes së përdoruesit ose ngjarjeve të tjera të dritares.

  • NSmenu. Ju zbatoni një NSmenuDelegate për të mbështetur ngjarjet që ndodhin kur një përdorues ndërvepron me menutë në aplikacionin tuaj.

Kornizat Jo-Objective-C në aplikacionet Macintosh

Apple ofron shumë korniza të zhvillimit të aplikacioneve Macintosh (biblioteka kodesh) që aplikacioni juaj mund t'i thërrasë për të kryer mijëra operacione në OS X. Shumë prej këtyre kornizave, siç është Kompleti PDF, përbëhen nga klasa Objektivi-C, nga të cilat aplikacioni juaj mund të krijoni dhe përdorni objekte brenda aplikacioneve tuaja. Megjithatë, disa nga këto korniza janë thjesht biblioteka funksionesh që aplikacioni juaj mund të ekzekutojë.

Për shembull, korniza CFNetwork është një grup funksionesh që aplikacioni juaj mund të përdorë për të kryer lidhje të rregulluara të rrjetit. Klasa NSURL ofron një grup të mirë të operacioneve bazë të rrjetit që janë të shkëlqyera për marrjen e të dhënave duke përdorur një URL. Nëse aplikacioni juaj kërkon më shumë kontroll mbi komunikimet e rrjetit që ai nis, do t'ju duhet të përdorni kornizën CFNetwork dhe funksionet e tij. Ju mund të përdorni kodin e mëposhtëm për të përgatitur një kërkesë HTTP për transmetim në një URL specifike:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR( "Cookie" ); // shtoni një skedar specifik në kërkesën HTTP
CFStringRef headerFieldValue = CFSTR( "loginID=emri_i_përdoruesit; fjalëkalimi=fjalëkalimi_my;" );
CFStringRef url = CFSTR( "www.diabeticpad.com" );
CFURLRef urlRef = CFURLCreateWithStrign( kCFAllocatorDefault, url, NULL);
CFStringRef requestMethod = CFSTR( "GET" );
Kërkesa CFHTTPMessageRef = CFHTTPMmessageCreateRequest( kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1 );
CFHTTPMessageSetBody(kërkesë, httpBody );
// shtoni cookie-n
CFHTTPMessageSetHeaderFieldValue(kërkesa, headerFieldName, headerFieldValue );
CFDataRef serializedHttpRequest = CFHTTPMmessageCopySerializedMessage(kërkesë);

Pasi kodi juaj të ketë kërkesën e serializuar, aplikacioni juaj më pas mund të hapë një transmetim shkrimi në mënyrë që ta dorëzojë kërkesën në destinacionin e tij.

Të gjitha kornizat e Apple me bazë C-në ofrojnë një sërë funksionesh për kryerjen e këtij lloji të programimit të nivelit më të ulët. Kodi juaj do të bëhet më i ndërlikuar, por Apple nuk ofron klasa Objective-C për të gjitha kornizat e saj. Nëse vërtet keni nevojë për funksionalitetin e disponueshëm në një nga ato korniza, kjo është mënyra e vetme për të arritur qëllimet e aplikacionit tuaj. Kornizat e mëposhtme nuk ofrojnë klasa Objective-C:

  • Kutia e veglave audio

  • Rrjeti CF

  • Bërthama MIDI

  • Teksti bazë

  • Shërbimi i Drejtorisë (të tilla si LDAP dhe Open Directory)

  • Siguria

Nëse dëshironi të krijoni aplikacione që mund të përfitojnë plotësisht nga veçoritë e OS X, duhet të jeni gati për të mbështetur përdorimin e bibliotekave të kodeve jo-Objective-C.

Kodi C++ në aplikacionet Macintosh Objective-C

Objective-C ofron veçori të orientuara nga objekti për zhvillimin e aplikacioneve Macintosh, të tilla si trashëgimia dhe polimorfizmi. Gjuha bazohet në gjuhën e programimit C; prandaj, ju mund të përdorni njohuritë tuaja të programimit C për të koduar brenda Objective-C. Objective-C++ është një mekanizëm urë që lejon modulet burimore të Objective-C të punojnë me klasat Objective-C++, të cilat mund të përpilohen dhe lidhen me bibliotekat e kodeve C++.

Shembulli i mëposhtëm i thjeshtë i një matrice katrore tregon përmbajtjen e një skedari të kokës C++ për një klasë Matrix. Klasa Matrix vjen me konstruktorin dhe destruktorin standard për një klasë C++, dhe metodat janë ato që prisni për një objekt bazë të matricës katrore:

Matrica e klasës
{
publike:
    Matrica (int inSize);
    virtuale ~Matrix();
    int getSize(void);
    int getDeterminant( void );
    void setElement( int inRow, int inCol, int inValue );
    int getElement( int inRow, int inCol );
    Operatori i matricës+(const Matrica& inAddend);
private:
    int m_madhësia;
    int[][] m_elemente;
};

Për të përdorur Objective-C++, modulet tuaja të klasës Objective-C++ duhet të përdorin shtesën e skedarit .mm. Kjo i tregon përpiluesit të Xcode se klasa duhet të kompilohet duke përdorur Objective-C++, gjë që do t'i lejojë klasës tuaj të përdorë fjalë kyçe të gjuhës C++. Duke përdorur Objective-C++, aplikacioni juaj mund të krijojë një objekt Matrix për të kryer operacione bazë, të tilla si shtimi i dy objekteve të Matricës së bashku. Kjo supozon se moduli burimor Objective-C++ ka #importuar skedarin C++ Matrix.h:

- (i pavlefshëm) shtoj dy matrica
{
    Matrica e matricësOne( 3 ); // matricë 3x3
    Matrica e matricësDy( 3 ); // një tjetër
    int rowIndex = 0;
    int colIndex = 0;
    për (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        për (colIndex=0; colIndex<3; ++colIndex)
        {
            // vendos elementet e matricës me vlerat e tyre
            matrixOne.setElement(rowIndex, colIndex, XXX);
            // vendos elementet e matricës dy në disa vlera të tjera
            matrixTwo.setElement(rowIndex, colIndex, YYY);
        }
    }
    Matrica e matricës Shuma = matricaNjë + matricaDy;

Me Objective-C++, aplikacionet tuaja mund të përfitojnë nga të gjitha bibliotekat e disponueshme të palëve të treta të shkruara për C++.


Për të moshuarit: Si të futni Clip Art në një rrëshqitje në PowerPoint

Për të moshuarit: Si të futni Clip Art në një rrëshqitje në PowerPoint

Klip arti është vepra arti e përgjithshme e para-vizatuar dhe Microsoft ofron shumë skedarë klipi art falas me produktet e tij të Office. Mund të futni klip art në paraqitjen tuaj të rrëshqitjes në PowerPoint. Mënyra më e lehtë për të futur artin e klipit është duke përdorur një nga mbajtësit e vendeve në një plan urbanistik: Shfaq një rrëshqitje që përmban një Clip Art […]

Për të moshuarit: Si të mbushni ngjyrën në Microsoft Excel

Për të moshuarit: Si të mbushni ngjyrën në Microsoft Excel

Ngjyra e mbushjes - e quajtur gjithashtu hijezim - është ngjyra ose modeli që mbush sfondin e një ose më shumë qelizave të fletës së punës Excel. Zbatimi i hijeve mund të ndihmojë sytë e lexuesit të ndjekin informacionin nëpër një faqe dhe mund të shtojë ngjyra dhe interes vizual në një fletë pune. Në disa lloje fletëllogaritëse, të tilla si regjistri i fletores së çeqeve, […]

Shtimi i kontakteve të reja në akt! 2005

Shtimi i kontakteve të reja në akt! 2005

Në nivelin më të thjeshtë, qëllimi kryesor i ACT! është të shërbejë si një vend për të ruajtur të gjitha kontaktet me të cilat ndërveproni në baza ditore. Mund të shtoni dhe modifikoni të gjitha kontaktet tuaja nga dritarja Detajet e Kontaktit sepse përmban të gjithë informacionin që i përket një regjistrimi të veçantë dhe […]

Fleta e mashtrimit të mosmarrëveshjeve për LuckyTemplates

Fleta e mashtrimit të mosmarrëveshjeve për LuckyTemplates

Përdorni këtë fletë mashtrimi për të hyrë menjëherë në përdorimin e Discord. Zbuloni robotë të dobishëm Discord, aplikacione që mund të integroni dhe këshilla për intervistimin e të ftuarve.

OpenOffice.org Për Fletën e mashtrimit të LuckyTemplates

OpenOffice.org Për Fletën e mashtrimit të LuckyTemplates

Paketa e zyrës OpenOffice.org ka shumë mjete për ta bërë më të lehtë jetën e punës. Kur jeni duke punuar në OpenOffice.org, njihuni me shiritin e veglave të funksionit (i cili duket pothuajse i njëjtë në të gjitha aplikacionet) dhe butonat kryesorë të shiritit të veglave për ndihmë me komandat bazë për shumicën e detyrave.

Makina bombë e Alan Turingut

Makina bombë e Alan Turingut

Makina Bombe e Alan Turing nuk ishte asnjë formë e inteligjencës artificiale (AI). Në fakt, nuk është as një kompjuter i vërtetë. Ai theu mesazhet kriptografike Enigma, dhe kaq. Megjithatë, ai siguroi ushqim për mendim për Turingun, i cili përfundimisht çoi në një punim të titulluar "Makineri dhe Inteligjenca Kompjuterike"?? që ai botoi në vitet 1950 që përshkruan […]

Mangësitë standarde të harduerit për inteligjencën artificiale

Mangësitë standarde të harduerit për inteligjencën artificiale

Aftësia për të krijuar një sistem modular ka përfitime të rëndësishme, veçanërisht në biznes. Aftësia për të hequr dhe zëvendësuar komponentë individualë i mban kostot të ulëta ndërsa lejon përmirësime në rritje si në shpejtësi ashtu edhe në efikasitet. Megjithatë, si me shumë gjëra, nuk ka drekë falas. Modulariteti i ofruar nga arkitektura Von Neumann vjen me disa […]

10 të bëra dhe mospërfillje kur përdorni QuarkXPress

10 të bëra dhe mospërfillje kur përdorni QuarkXPress

Nëse do t'ju duhej të zgjidhnit dhjetë gjëra të lehta për t'u harruar, por jashtëzakonisht të dobishme për t'u mbajtur mend rreth QuarkXPress, ato në listën e mëposhtme, i dashur lexues, do të ishin ato. Namaste. Flisni me printerin tuaj komercial Të gjitha projektet e printimit fillojnë dhe përfundojnë me printerin. Kjo sepse vetëm printerët i dinë kufizimet e tyre dhe mijëra mënyra se si mund të bëhet një projekt […]

Origjina e Bitcoin

Origjina e Bitcoin

Aspekti më i rëndësishëm i bitcoin mund të jetë koncepti që qëndron pas tij. Bitcoin u krijua nga zhvilluesi Satoshi Nakamoto. Në vend që të përpiqej të krijonte një metodë krejtësisht të re pagese për të përmbysur mënyrën se si ne të gjithë paguajmë për gjërat në internet, Satoshi pa disa probleme me sistemet ekzistuese të pagesave dhe donte t'i adresonte ato. Koncepti i […]

Si të mbroni privatësinë tuaj kur përdorni Bitcoin

Si të mbroni privatësinë tuaj kur përdorni Bitcoin

Një nivel i caktuar anonimiteti është i lidhur me përdorimin e bitcoin dhe monedhës dixhitale në përgjithësi. Nëse mund ta etiketoni atë si "mjaft anonim" është një mendim personal. Ka mënyra për të mbrojtur privatësinë tuaj kur përdorni bitcoin për të lëvizur fondet, por këto kërkojnë disa përpjekje dhe planifikim: Ju mund të krijoni një adresë të re për […]