Desenvolupament daplicacions per a Mac per al full de trucs de LuckyTemplates

El desenvolupament d'aplicacions Macintosh requereix creativitat, habilitats de programació Objective-C, una mica de paciència i una bona ajuda de persistència per implementar, perfeccionar i lliurar la vostra aplicació Macintosh en bon estat de funcionament als vostres usuaris. En el camí cap a aquesta destinació, trobareu alguns reptes que posaran a prova les vostres habilitats de programació i resolució de problemes. Heu de comprendre (entre altres coses) l'ús de delegats per implementar les devolució de trucades d'aplicacions; utilitzant marcs que no siguin Objective-C d'Apple; i incorporant codi C++ a les vostres aplicacions.

Implementació de devolució de trucada en aplicacions de Macintosh

El desenvolupament d'aplicacions de Macintosh utilitza devolucions de trucada per permetre que Mac OS X executi codi dins de la vostra aplicació per a operacions específiques. Si esteu creant una aplicació estàndard de finestres o documents de Macintosh, el primer codi que executarà OS X és en un dels mètodes de devolució de trucada següents que heu de crear per a la vostra aplicació, depenent del disseny de l'aplicació:

  • Aplicacions basades en finestres: (void)applicationDidFinishLaunching:(NSNotification*)aNotification

  • Aplicacions basades en documents: (void)windowControllerDidLoadNib:(NSWindowController*)windowController

Una devolució de trucada és simplement un mètode que el sistema operatiu eventualment executa mentre intenta proporcionar o recuperar informació de la vostra aplicació. El vostre codi d'aplicació executarà un mètode per a una classe Cocoa on la vostra aplicació tindrà l'oportunitat de proporcionar el nom d'un mètode d'una de les vostres classes, per ser cridat a un objecte d'aquesta classe la vostra aplicació també haurà de proporcionar.

Un delegat és un objecte d'ajuda, que una classe Cocoa utilitza per ampliar la funcionalitat de la classe, permetent-vos implementar el codi que la classe Cocoa executarà en determinades circumstàncies. Una classe Cocoa comprova el seu objecte delegat (si se n'ha assignat un) per saber si el delegat proporciona una implementació d'un mètode específic. Si el delegat té aquest mètode, la classe Cocoa executa aquest mètode; si el delegat no implementa aquest mètode específic, la classe Cocoa utilitza un mètode predeterminat propi o registra un error. La majoria de delegats han d'incorporar un protocol concret que determini quins mètodes poden implementar; els delegats del vostre codi han d'utilitzar els mètodes d'implementació del protocol específic que el delegat espera.

Aquests són alguns dels objectes Cocoa que poden utilitzar delegats per executar el vostre codi:

  • NSTableView. El NSTableView accepta un delegat que obeeix el protocol NSTableViewDelegate. Això inclou entre 20 i 30 mètodes que l'objecte delegat de la vostra aplicació pot implementar per donar suport a la necessitat de la vostra aplicació de saber què està fent NSTableView. Hi ha mètodes que es cridaran a la vostra aplicació quan necessiti conèixer i reaccionar davant d'una acció, com ara quan un usuari fa una selecció a la taula o quan es redimensiona una columna.

  • Aplicació NS. Podeu assignar un NSApplicationDelegate per gestionar alguns dels mètodes que rebrà una instància NSApplication (la vostra aplicació). Aquests mètodes es poden cridar just abans o just després que la vostra aplicació executi un altre mètode, de manera que la vostra aplicació es pugui preparar.

  • Finestra NSW. Un NSWindowDelegate assignat a una de les finestres de la vostra aplicació li donarà l'oportunitat de respondre a un usuari que canvia la mida, es mou o altres esdeveniments de la finestra.

  • NSMu. Implementeu un NSMenuDelegate per donar suport als esdeveniments que succeeixen quan un usuari interactua amb els menús de la vostra aplicació.

Frameworks no Objectius-C en aplicacions de Macintosh

Apple ofereix molts marcs de desenvolupament d'aplicacions per a Macintosh (biblioteca de codi) als quals la vostra aplicació pot trucar per dur a terme els milers d'operacions a OS X. Molts d'aquests marcs, com ara el kit PDF, es componen de classes Objective-C, a partir de les quals la vostra aplicació pot Creeu i utilitzeu objectes dins de les vostres aplicacions. Tanmateix, alguns d'aquests marcs són només biblioteques de funcions que la vostra aplicació pot executar.

Per exemple, el marc CFNetwork és un conjunt de funcions que la vostra aplicació pot utilitzar per realitzar connexions de xarxa afinades. La classe NSURL proporciona un bon conjunt d'operacions bàsiques de xarxa que són excel·lents per recuperar dades mitjançant un URL. Si la vostra aplicació requereix més control sobre les comunicacions de xarxa que inicia, haureu d'utilitzar el marc CFNetwork i les seves funcions. Podeu utilitzar el codi següent per preparar una sol·licitud HTTP per a la transmissió a un URL específic:

CFStringRef httpBody = CFSTR( " );
CFStringRef headerFieldName = CFSTR( "Cookie" ); // afegeix una galeta específica a la sol·licitud HTTP
CFStringRef headerFieldValue = CFSTR( "loginID=my_user_name; password=my_password;" );
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( sol·licitud, httpBody );
// afegeix la galeta
CFHTTPMessageSetHeaderFieldValue( sol·licitud, headerFieldName, headerFieldValue );
CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage( sol·licitud);

Un cop el vostre codi tingui la sol·licitud serialitzada, la vostra aplicació pot obrir un flux d'escriptura per enviar la sol·licitud a la seva destinació.

Tots els frameworks d'Apple basats en C proporcionen un conjunt de funcions per dur a terme aquest tipus de programació de nivell inferior. El vostre codi es complicarà, però Apple no ofereix classes Objective-C per a tots els seus marcs. Si realment necessiteu la funcionalitat disponible en un d'aquests marcs, aquesta és l'única manera d'assolir els objectius de la vostra aplicació. Els marcs següents no proporcionen classes Objective-C:

  • Caixa d'eines d'àudio

  • CFNetwork

  • Core MIDI

  • Text bàsic

  • Servei de directori (com ara LDAP i Open Directory)

  • Seguretat

Si voleu crear aplicacions que puguin aprofitar al màxim les característiques d'OS X, heu d'estar preparats per admetre l'ús de biblioteques de codi que no siguin Objective-C.

Codi C++ a les aplicacions Objective-C Macintosh

Objective-C proporciona funcions orientades a objectes per al desenvolupament d'aplicacions Macintosh, com ara l'herència i el polimorfisme. El llenguatge es basa en el llenguatge de programació C; per tant, podeu utilitzar els vostres coneixements de programació en C per codificar dins de Objective-C. Objective-C++ és un mecanisme de pont que permet als mòduls font Objective-C treballar amb classes Objective-C++, que podrien compilar i enllaçar amb biblioteques de codi C++.

El següent exemple senzill d'una matriu quadrada mostra el contingut d'un fitxer de capçalera C++ per a una classe Matrix. La classe Matrix ve amb el constructor i el destructor estàndard per a una classe C++, i els mètodes són els que espereu per a un objecte de matriu quadrada bàsica:

matriu de classe
{
públic:
    Matrix( int inSize );
    virtual ~Matrix();
    int getSize(vod);
    int getDeterminant(vod);
    void setElement( int inRow, int inCol, int inValue);
    int getElement( int inRow, int inCol );
    Operador de matriu+( const Matrix& inAddend );
privat:
    int m_size;
    int[][] m_elements;
};

Per utilitzar Objective-C++, els vostres mòduls de classe Objective-C++ han d'utilitzar l'extensió de fitxer .mm. Això indica al compilador de Xcode que la classe s'ha de compilar amb Objective-C++, que permetrà que la vostra classe utilitzi paraules clau del llenguatge C++. Amb Objective-C++, la vostra aplicació podria crear un objecte Matrix per realitzar operacions bàsiques, com ara afegir dos objectes Matrix junts. Això suposa que el mòdul font Objective-C++ ha #importat el fitxer C++ Matrix.h:

- (void) addTwoMatrices
{
    Matrix matrixOne(3); // Matriu 3x3
    Matrix matrixTwo(3); // un altre
    int rowIndex = 0;
    int colIndex = 0;
    per a (rowIndex=0; rowIndex<3; ++rowIndex)
    {
        per a (colIndex=0; colIndex<3; ++colIndex)
        {
            // establir els elements de la matriu als seus valors
            matrixOne.setElement( rowIndex, colIndex, XXX );
            // estableix els elements de la matriu dos amb altres valors
            matrixTwo.setElement( rowIndex, colIndex, YYY );
        }
    }
    Matrix matrixSum = matrixOne + matrixTwo;

Amb Objective-C++, les vostres aplicacions poden aprofitar totes les biblioteques de tercers disponibles escrites per a C++.


Per a gent gran: com inserir imatges predissenyades en una diapositiva de PowerPoint

Per a gent gran: com inserir imatges predissenyades en una diapositiva de PowerPoint

Les imatges predissenyades són obres d'art genèriques dibuixades prèviament i Microsoft ofereix molts fitxers d'imatges d'imatges de manera gratuïta amb els seus productes d'Office. Podeu inserir imatges predissenyades al disseny de la diapositiva de PowerPoint. La manera més senzilla d'inserir imatges predissenyades és utilitzant un dels marcadors de posició en un disseny de diapositives: Mostra una diapositiva que conté una imatge prediseñada […]

Per a gent gran: Com omplir el color a Microsoft Excel

Per a gent gran: Com omplir el color a Microsoft Excel

El color de farciment, també anomenat ombrejat, és el color o el patró que omple el fons d'una o més cel·les del full de treball d'Excel. L'aplicació d'ombrejat pot ajudar els ulls del lector a seguir la informació a través d'una pàgina i pot afegir color i interès visual a un full de treball. En alguns tipus de fulls de càlcul, com ara un registre de xecs, […]

Afegeix nous contactes en Act! 2005

Afegeix nous contactes en Act! 2005

En el nivell més senzill, l'objectiu principal d'ACT! és servir com a lloc per emmagatzemar tots els contactes amb els quals interactueu diàriament. Podeu afegir i editar tots els vostres contactes des de la finestra Detall del contacte perquè conté tota la informació relacionada amb un registre en particular i […]

Full de trucs de Discord per a LuckyTemplates

Full de trucs de Discord per a LuckyTemplates

Utilitzeu aquest full de trucs per començar directament a utilitzar Discord. Descobriu útils bots de Discord, aplicacions que podeu integrar i consells per entrevistar convidats.

Full de trucs dOpenOffice.org per a LuckyTemplates

Full de trucs dOpenOffice.org per a LuckyTemplates

La suite ofimàtica OpenOffice.org té moltes eines per facilitar la vida laboral. Quan treballeu a l'OpenOffice.org, coneixeu la barra d'eines de funcions (que sembla gairebé igual a totes les aplicacions) i els botons de la barra d'eines principal per obtenir ajuda amb les ordres bàsiques per a la majoria de tasques.

Bombe Machine dAlan Turing

Bombe Machine dAlan Turing

La màquina Bombe d'Alan Turing no era cap forma d'intel·ligència artificial (IA). De fet, ni tan sols és un ordinador real. Va trencar els missatges criptogràfics d'Enigma, i això és tot. No obstant això, va proporcionar elements per pensar a Turing, que finalment va donar lloc a un article titulat “Computing Machinery and Intelligenceâ€?? que va publicar a la dècada de 1950 que descriu […]

Deficiències de maquinari estàndard per a la intel·ligència artificial

Deficiències de maquinari estàndard per a la intel·ligència artificial

La capacitat de crear un sistema modular té avantatges importants, especialment en els negocis. La capacitat d'eliminar i substituir components individuals manté els costos baixos alhora que permet millores incrementals tant en velocitat com en eficiència. Tanmateix, com passa amb la majoria de coses, no hi ha dinar gratuït. La modularitat que ofereix l'arquitectura Von Neumann ve amb algunes […]

10 coses a fer i a fer en utilitzar QuarkXPress

10 coses a fer i a fer en utilitzar QuarkXPress

Si haguéssiu de triar deu coses fàcils d'oblidar però extremadament útils per recordar sobre QuarkXPress, les de la llista següent, estimat lector, serien elles. Namaste. Parleu amb la vostra impressora comercial Tots els projectes d'impressió comencen i acaben amb la impressora. Això és perquè només els impressors coneixen les seves limitacions i les milers de maneres en què un projecte pot ser […]

Lorigen de Bitcoin

Lorigen de Bitcoin

L'aspecte més important de bitcoin pot ser el concepte que hi ha darrere. Bitcoin va ser creat pel desenvolupador Satoshi Nakamoto. En lloc d'intentar dissenyar un mètode de pagament completament nou per enderrocar la forma en què tots paguem les coses en línia, Satoshi va veure certs problemes amb els sistemes de pagament existents i va voler solucionar-los. El concepte de […]

Com protegir la vostra privadesa quan feu servir Bitcoin

Com protegir la vostra privadesa quan feu servir Bitcoin

Un cert nivell d'anonimat està lligat a l'ús de bitcoins i moneda digital en general. Si pots etiquetar-ho com a "prou anònim" és una opinió personal. Hi ha maneres de protegir la vostra privadesa quan feu servir bitcoins per moure fons, però aquestes requereixen un cert esforç i planificació: podeu generar una nova adreça per a […]