Mac développement d'applications pour les nuls

Macintosh utilise de développement d'applications rappels

Sommaire

pour permettre à Mac OS X pour exécuter du code au sein de votre application pour des opérations spécifiques. Si vous créez un standard Macintosh Window- ou une application basée sur les documents, le tout premier code qui va exécuter OS X est l'une des méthodes de rappel suivantes que vous devez créer pour votre application, en fonction de la conception de l'application:

  • Applications à base de fenêtres: (void) applicationDidFinishLaunching: (NSNotification *) aNotification

  • Applications basées sur des documents: (void) windowControllerDidLoadNib: (NSWindowController *) windowController

Un rappel est tout simplement une méthode que l'OS a finalement exécute alors qu'il essaie de fournir ou récupérer des informations à partir de votre application. Votre code d'application va exécuter une méthode pour une classe Cocoa où votre application aura l'occasion de fournir le nom d'une méthode de l'une de vos classes, à être appelé sur un objet de cette classe de votre application aura également à fournir.

UN délégué est un objet d'assistance, qui une classe de Cocoa utilise pour étendre les fonctionnalités de la classe en vous permettant de mettre en œuvre le code qui la classe Cocoa exécutera dans certaines circonstances. Une classe de cacao vérifie son objet délégué (si l'on a été attribué) pour savoir si le délégué fournit une implémentation d'une méthode spécifique. Si le délégué a cette méthode, la classe de cacao exécute dologie que si le délégué ne met pas en œuvre cette méthode spécifique, la classe de cacao soit utilise une méthode de son propre défaut ou enregistre une erreur. La plupart des délégués doivent comporter un particulier protocole qui détermine quelles méthodes ils peuvent implement- les délégués de votre code doit utiliser les méthodes du protocole spécifique que le délégué prévoit mettre en œuvre.

Voici quelques-uns des objets Cocoa qui peuvent utiliser des délégués pour exécuter votre code:

  • NSTableView. La NSTableView accepte un délégué qui obéit à la NSTableViewDelegate protocole. Cela comprend 20 à 30 méthodes que l'objet délégué de votre application peut mettre en œuvre pour soutenir les besoins de votre application pour savoir ce que le NSTableView fait. Il existe des méthodes qui seront appelés dans votre application quand il a besoin de savoir et de réagir à une action, comme lorsqu'un utilisateur effectue une sélection dans la table ou quand une colonne est redimensionnée.

  • NSApplication. Vous pouvez attribuer une NSApplicationDelegate pour traiter certaines des méthodes qu'une NSApplication exemple (votre application) recevra. Ces méthodes peuvent être appelés juste avant ou juste après votre application exécute une autre méthode, afin que votre application peut être préparé.

  • NSWindow. Un NSWindowDelegate affecté à l'une des fenêtres de votre application va donner une chance de répondre à un redimensionnement de l'utilisateur, en mouvement, ou d'autres événements de la fenêtre de votre application.

  • NSMenu. Vous implémentez une NSMenuDelegate d'appuyer des événements qui se produisent lorsqu'un utilisateur interagit avec des menus de votre application.

Non-Objective C-cadres dans des applications Macintosh

Apple fournit de nombreux cadres Macintosh de développement d'applications (bibliothèques de code) que votre application peut appeler pour effectuer les milliers d'opérations dans OS X. Beaucoup de ces cadres, tels que le Kit de PDF, sont composées de classes Objective-C, à partir de laquelle votre application peut créer et utiliser des objets dans vos applications. Toutefois, certains de ces cadres sont seulement les bibliothèques de fonctions que votre application peut exécuter.

Par exemple, la CFNetwork cadre est un ensemble de fonctions que votre application peut utiliser pour effectuer des connexions réseau affiné. La NSURL classe fournit un bon ensemble d'opérations de réseau de base qui sont grands pour la récupération des données en utilisant une URL. Si votre application nécessite plus de contrôle sur les communications de réseau, il initie, vous aurez à utiliser le CFNetwork cadre et de ses fonctions. Vous pouvez utiliser le code suivant pour préparer une requête HTTP pour la transmission à une URL spécifique:

CFStringRef httpBody = CFSTR ("") -CFStringRef headerFieldName = CFSTR ("Cookie") - // ajouter cookie HTTP requestCFStringRef headerFieldValue = CFSTR ("loginID = my_user_name- password = my_password-") -CFStringRef url = CFSTR ("diabeticpad .com ") -CFURLRef urlRef = CFURLCreateWithStrign (kCFAllocatorDefault, url, NULL) -CFStringRef requestMethod = CFSTR (" GET ") -CFHTTPMessageRef demande = CFHTTPMessageCreateRequest (kCFAllocatorDefault, requestMethod, url, kCFHTTPVersion1_1) -CFHTTPMessageSetBody (demande, httpBody) - // ajouter le cookieCFHTTPMessageSetHeaderFieldValue (demande, headerFieldName, headerFieldValue) -CFDataRef serializedHttpRequest = CFHTTPMessageCopySerializedMessage (demande) -

Une fois votre code a la demande sérialisée, votre application peut alors ouvrir une écriture-flux afin de fournir la demande à sa destination.

Tous les cadres d'Apple basés sur-C fournissent un ensemble de fonctions pour effectuer ce type de programmation de niveau inférieur. Votre code sera obtenir plus compliqué, mais Apple ne fournit pas classes Objective-C pour l'ensemble de ses cadres. Si vous avez vraiment besoin de la fonctionnalité disponible dans un de ces cadres, ceci est la seule façon vous pouvez atteindre les objectifs de votre application. Les cadres suivants ne fournissent pas de classes Objective-C:

  • Audio Toolbox

  • CFNetwork

  • MIDI de base


  • Texte de base

  • Service d'annuaire (LDAP et Open Directory)

  • Sécurité

Si vous voulez créer des applications qui peuvent tirer pleinement parti des fonctionnalités de Mac OS X, vous devez être prêt à soutenir l'utilisation de bibliothèques de code non-Objective-C.

Code C ++ en Objective-C Macintosh Applications

Objective-C fournit des fonctionnalités orientées objet pour le développement d'applications Macintosh, tels que l'héritage et le polymorphisme. La langue est basée sur la langue- C de programmation par conséquent, vous pouvez utiliser vos connaissances de programmation C pour le code dans Objective-C. Objective-C ++ est un mécanisme de pont qui permettent aux modules de source Objective-C de travailler avec des classes Objective-C ++, ce qui pourrait compiler et lier avec C ++ bibliothèques de code.

L'exemple simple d'une matrice carrée suivant montre le contenu du dossier d'un en-tête C pour un Matrice classe. La classe Matrix est livré avec le constructeur standard et destructeur pour une classe C ++, et les méthodes sont ce que vous attendez pour un objet de base de matrice carrée:

Matrice de classe {public: Matrix (int inSize) -virtual ~ Matrix () - int getSize (void) -int getDeterminant (void) -void setElement (int InRow, int Incol, int inValue) -int getElement (int InRow, int Incol ) opérateur -MATRIX + (matrice const inAddend) -salle: int m_size-int [] [] m_elements -} -

Pour utiliser Objective-C ++, Objective-C votre ++ modules de classe doit utiliser l'extension de fichier .mm. Ceci indique le compilateur de Xcode que la classe doit être compilé en utilisant Objective-C ++, qui permettra à votre classe à utiliser C ++ mots clés du langage. En utilisant Objective-C ++, votre application pourrait créer un objet Matrix pour effectuer des opérations de base, telles que l'ajout de deux Matrice des objets ensemble. Cela suppose le module de source de l'Objective-C a imported C ++ Matrix.h fichier:

- (void) {addTwoMatrices Matrice MatrixOne (3) - // 3x3 matrixMatrix matrixTwo (3) - // anotherint rowIndex = 0-int colIndex = 0-en (rowIndex = 0- rowIndexlt; 3- ++) {rowIndex pour (colIndex = 0- colIndexlt; 3- ++ colIndex) {// ensemble matrice ses éléments à leur valuesmatrixOne.setElement (rowIndex, colIndex, XXX) - // définir les éléments de matrice à deux un autre valuesmatrixTwo.setElement (rowIndex, colIndex, YYY) -}} Matrice matrixSum = MatrixOne + matrixTwo-

Avec Objective-C ++, vos applications sont en mesure de profiter de toutes les bibliothèques disponibles tiers écrits pour C ++.


» » » » Mac développement d'applications pour les nuls