Lar Mídia social Mac Desenvolvimento de aplicativos para Dummies Cheat Sheet - dummies

Mac Desenvolvimento de aplicativos para Dummies Cheat Sheet - dummies

Vídeo: Visual Basic Editor (VBA) Updates for Excel for Mac 2016 2024

Vídeo: Visual Basic Editor (VBA) Updates for Excel for Mac 2016 2024
Anonim

Por Karl G. Kowalski

O desenvolvimento de aplicativos para Macintosh requer criatividade, habilidades de programação Objetivo-C, alguma paciência e uma boa ajuda de persistência para implementar, refinar, e entregue seu aplicativo Macintosh em boas condições de funcionamento para seus usuários. No seu caminho para esse destino, você encontrará alguns desafios que testarão suas habilidades de programação e resolução de problemas. Você deve abordar (entre outras coisas) usando delegados para implementar callbacks do aplicativo; usando estruturas não objetivas-C da Apple; e incorporando código C ++ em seus aplicativos.

Implementando retornos de chamada em aplicativos Macintosh

O desenvolvimento de aplicativos Macintosh usa retorno de chamada para permitir que o Mac OS X execute o código em seu aplicativo para operações específicas. Se você estiver criando uma aplicação padrão de janela de Macintosh ou de documento, o primeiro código que o OS X executará é um dos seguintes métodos de retorno de chamada que você deve criar para o seu aplicativo, dependendo do design do aplicativo:

  • Aplicativos baseados na janela: (void) applicationDidFinishLaunching: (NSNotification *) aNotification

  • Aplicativos baseados em documentos: (void) windowControllerDidLoadNib: (NSWindowController *) windowController

Uma chamada de retorno é simplesmente uma método que o sistema operacional eventualmente executa enquanto está tentando fornecer ou recuperar informações de seu aplicativo. O código do seu aplicativo executará um método para uma classe Cocoa onde seu aplicativo terá a oportunidade de fornecer o nome de um método de uma das suas classes, para ser chamado em um objeto dessa classe, seu aplicativo também terá que fornecer.

Um delegado é um objeto auxiliar, que uma classe Cocoa usa para ampliar a funcionalidade da classe, permitindo que você implemente o código que a classe Cocoa executará em determinadas circunstâncias. Uma classe Cocoa verifica seu objeto delegado (se alguém foi designado) se o delegado fornece uma implementação de um método específico. Se o delegado tiver esse método, a classe Cocoa executa esse método; se o delegado não implementar esse método específico, a classe Cocoa usa um método padrão próprio ou registra um erro. A maioria dos delegados deve incorporar um determinado protocolo que determina quais métodos eles podem implementar; os delegados do seu código devem usar os métodos implementados a partir do protocolo específico que o delegado espera.

Aqui estão alguns dos objetos Cocoa que podem usar delegados para executar seu código:

  • NSTableView.O NSTableView aceita um delegado que obedece ao protocolo NSTableViewDelegate. Isso inclui 20 a 30 métodos que o objeto delegado da sua aplicação pode implementar para suportar a necessidade do seu aplicativo de saber o que o NSTableView está fazendo. Existem métodos que serão chamados no seu aplicativo quando precisar conhecer e reagir a uma ação, como quando um usuário faz uma seleção na tabela ou quando uma coluna é redimensionada.

  • NSApplication. Você pode atribuir um NSApplicationDelegate para lidar com alguns dos métodos que uma instância NSApplication (seu aplicativo) receberá. Esses métodos podem ser chamados imediatamente antes ou logo após o seu aplicativo executar outro método, para que seu aplicativo possa ser preparado.

  • NSWindow. Um NSWindowDelegate atribuído a uma das janelas do seu aplicativo dará ao seu aplicativo a chance de responder a um usuário redimensionando, movendo ou outros eventos de janela.

  • NSMenu. Você implementa um NSMenuDelegate para suportar eventos que acontecem quando um usuário interage com menus em seu aplicativo.

Estruturas não objetivas-C em aplicativos Macintosh

A Apple fornece muitas estruturas de desenvolvimento de aplicativos para Macintosh (bibliotecas de códigos) que seu aplicativo pode chamar para executar as milhares de operações no OS X. Muitas dessas estruturas, como o PDF Kit, são compostos de classes Objective-C, das quais seu aplicativo pode criar e usar objetos dentro de seus aplicativos. No entanto, algumas destas estruturas são apenas bibliotecas de funções que seu aplicativo pode executar.

Por exemplo, a estrutura da rede CFN é um conjunto de funções que seu aplicativo pode usar para executar conexões de rede ajustadas. A classe NSURL fornece um bom conjunto de operações de rede básicas que são ótimas para recuperar dados usando um URL. Se o seu aplicativo requer mais controle sobre as comunicações de rede iniciadas, você terá que usar a estrutura da rede CFN e suas funções. Você poderia usar o seguinte código para preparar uma solicitação HTTP para transmissão para um URL específico:

CFStringRef httpBody = CFSTR ("); CFStringRef headerFieldName = CFSTR (" Cookie "); // adiciona cookie específico à solicitação HTTP CFStringRef headerFieldValue = CFSTR ("loginID = my_user_name; senha = my_password;"); CFStringRef url = CFSTR ("www. Diabeticpad. Com"); CFURLRef urlRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL); CFStringRef requestMethod = CFSTR ("GET"); pedido CFHTTPMessageRef = CFHTTPMessageCreateRequest (kCFAllocatorDefault, RequestMethod, url, kCFHTTPVersion1_1); CFHTTPMessageSetBody (request, httpBody); // adicione o CFHTTPMessageSetHeaderFieldValue cookie (pedido, headerFieldName, headerFieldValue); CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (request);

Uma vez que seu código tem a solicitação serializada, sua aplicação pode então abrir um fluxo de gravação para entregar a solicitação ao seu destino.

Todos os frameworks Apple baseados em C oferecem um conjunto de funções para executar esse tipo de programação de nível inferior. Seu código ficará mais complicado, mas a Apple não fornece classes Objective-C para todos os seus frameworks.Se você realmente exige a funcionalidade disponível em uma dessas estruturas, esta é a única maneira de alcançar os objetivos do seu aplicativo. Os seguintes frameworks não fornecem classes Objective-C:

  • Caixa de ferramentas de áudio

  • Rede CF

  • Core MIDI

  • Core Text

  • Serviço de diretório (como LDAP e Open Directory)

  • Segurança > Se você quiser criar aplicativos que possam tirar o máximo proveito dos recursos do OS X, você precisa estar pronto para suportar o uso de bibliotecas de códigos que não sejam do Objetivo-C.

C ++ Code em Objective-C Aplicações Macintosh

Objective-C fornece recursos orientados a objetos para desenvolvimento de aplicativos Macintosh, como herança e polimorfismo. O idioma é baseado na linguagem de programação C; portanto, você pode usar seu conhecimento de programação C para codificar dentro do Objective-C. O Objective-C ++ é um mecanismo de ponte que permite que módulos de origem Objective-C funcionem com classes Objective-C ++, que podem compilar e vincular com bibliotecas de código C ++.

O exemplo simples a seguir de uma matriz quadrada mostra o conteúdo de um arquivo de cabeçalho C ++ para uma classe Matrix. A classe Matrix vem com o construtor e o destruidor padrão para uma classe C ++ e os métodos são o que você esperaria para um objeto de matriz quadrada base:

class Matrix {public: Matrix (int inSize); virtual ~ Matrix (); int getSize (void); int getDeterminant (void); vazio setElement (int inRow, int inCol, int inValue); int getElement (int inRow, int inCol); Operador de matriz + (const Matrix & inAddend); privado: int m_size; int [] [] m_elements;};

Para usar o Objective-C ++, seus módulos de classe Objective-C ++ devem usar a extensão do arquivo. milímetros. Isso diz ao compilador do Xcode que a classe deve ser compilada usando Objective-C ++, o que permitirá que sua classe use palavras-chave de linguagem C ++. Usando o Objective-C ++, seu aplicativo pode criar um objeto Matrix para executar operações básicas, como adicionar dois objetos Matrix juntos. Isso pressupõe que o módulo de Origem Objective-C ++ tenha importado a Matriz C ++. arquivo h:

- (void) addTwoMatrices {Matriz matrixOne (3); // Matriz 3x3 Matriz matrixTwo (3); // outra int rowIndex = 0; int colIndex = 0; para (rowIndex = 0; rowIndex <3; ++ rowIndex) {para (colIndex = 0; colIndex <3; ++ colIndex) {// definir os elementos da matriz um para seus valores matrixOne. setElement (rowIndex, colIndex, XXX); // configura os elementos da matriz dois em alguns outros valores matrixTwo. setElement (rowIndex, colIndex, YYY);}} Matriz matrixSum = matrixOne + matrixTwo;

Com o Objective-C ++, seus aplicativos podem tirar proveito de todas as bibliotecas de terceiros disponíveis escritas para C ++.
Mac Desenvolvimento de aplicativos para Dummies Cheat Sheet - dummies

Escolha dos editores

Acalma suas emoções ao praticar Mindfulness - dummies

Acalma suas emoções ao praticar Mindfulness - dummies

Aqui, você descobre a maneira consciente de gerenciar as emoções - as etapas para tome quando estiver sentindo baixo, excessivamente irritado ou desconfortavelmente ansioso. As emoções positivas podem ser um sentimento maravilhoso. A alegria, a alegria, a emoção e a felicidade são perfeitas. Mas como você pode lidar com as chamadas emoções negativas? Use a atenção para a saúde emocional A atenção plena está se tornando ...

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Você pode encontrar a meditação mindfulness é uma ótima maneira de Comece o seu dia de trabalho. Quando chegar ao trabalho pela manhã, talvez já esteja estressado. Depois de uma agitada hora ou duas preparando as crianças para a escola ou regatear com seu parceiro ou lidar com alguma emergência em casa, seguido de ...

Os melhores sites Mindfulness - dummies

Os melhores sites Mindfulness - dummies

, Independentemente de você morar no Reino Unido ou em outro lugar, se você procurar "mindfulness" 'on-line, você literalmente obterá milhões de resultados. Como você pode dizer o trigo da palha? Aqui estão alguns sites que você achará útil. Atento. Este recurso maravilhoso tem muitos conteúdos de alta qualidade de professores excelentes de atenção plena. O ...

Escolha dos editores

HDR Solução de problemas: Nada está funcionando - manequins

HDR Solução de problemas: Nada está funcionando - manequins

Quando você se depara com uma situação com suas fotografias de alcance dinâmico elevado e parece que nada que você está fazendo está funcionando - as configurações não parecem boas, a imagem parece errada, os efeitos são ruins - relaxe e faça uma pausa. A imagem está lhe dizendo algo. Que algo às vezes é relacionado a forçar ...

HDR Resolução de problemas: falta de imaginação - dummies

HDR Resolução de problemas: falta de imaginação - dummies

A imaginação é uma coisa poderosa ao preparar imagens HDR, fato que é tornou-se mais óbvio quando você vê o resultado de não usá-lo versus usá-lo. A imagem superior desta figura é uma imagem HDR de um diner local durante a "hora dourada" - naquele horário atrasado (ou manhã) quando ...

HDR Solução de problemas: Sharpening - dummies

HDR Solução de problemas: Sharpening - dummies

Se você ficar apanhado na perfeição, você está preparado para aumentar seu HDR imagens. Os fotógrafos às vezes estão obcecados com a nitidez em suas fotos. Eles querem que tudo seja pixelly perfeitamente afiado do nariz da câmera até o infinito, independentemente da lente, abertura, ISO ou velocidade do obturador que eles usem. Esta figura mostra os resultados ...

Escolha dos editores

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Em qualquer componente de rede da Cisco, o show O comando de versão é aplicável a qualquer hardware usando o Sistema Operacional Cisco IET (Internetwork Operating System), incluindo switches. O comando show version mostra informações ligeiramente diferentes, de acordo com o tipo de dispositivo em que você usa. Veja a saída do comando show version em um switch e ...

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Você precisa usar o modo EXEC privilegiado se quiser realmente tem acesso de atualização a um sistema de rede Cisco,. Para entrar neste modo no modo EXEC do usuário, emita o comando enable, que solicita uma senha, se configurado. Como o nome do modo sugere, este modo tem privilégios extras para permitir ...

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Shell seguro (SSH) é um protocolo de rede para seus dispositivos Cisco, que é mais seguro do que o Telenet. Definir uma senha segura é um requisito de configuração para este protocolo. Para configurar o acesso a um switch Cisco para SSH, você precisará ter uma conta de usuário criada em sua opção. O exemplo supõe que você tenha ...