Quelle est la différence entre Xcode, Objective-C et Cocoa?
Cette question apparaît assez souvent ici, même si ce n'est implicitement lorsque les utilisateurs mistag iOS questions. Alors, quelle est la différence entre Xcode, Objective-C et Cocoa?
source d'informationauteur zoul
Vous devez vous connecter pour publier un commentaire.
Objective-C est un langage de programmation. Il pourrait être dit que c'est juste une description de ce qui valide Objective-C programmes et ce qu'ils signifient. Si vous avez un code source écrit en Objective-C, vous avez besoin d'un interprète ou d'un compilateur pour mettre la liste de travail. Des langues comme l'Objective-C sont généralement compilés, donc la plupart des gens utilisent un compilateur (comme LLVM). Objective-C est presque exclusivement utilisé pour développer pour iOS et OS X, mais il y a d'autres utilisations, par exemple, certaines personnes écrivent Objective-C pour Linux.
Vous pouvez utiliser un éditeur de texte pour écrire les sources, et un compilateur pour en faire une réelle programmes, mais avec les technologies modernes, il ya beaucoup plus à prendre en charge, de sorte qu'il existe un autre programme pour rendre votre travail plus facile. Ils sont appelés les Environnements de Développement Intégrés, ou IDEs. Une IDE vous offre un moyen pratique pour modifier les sources, les compiler, déboguer les programmes qui en découlent, la lecture de la documentation, et beaucoup d'autres choses. Xcode est l'un de ces IDE. Une observation importante ici est que Xcode ne pas compiler vos sources lui-même, il se contente d'appeler la version autonome du compilateur LLVM (). Et Xcode n'est pas le seul IDE vous pouvez utiliser pour développer en Objective-C apps – il y a AppCodepar exemple.
Écrit iOS ou OS X des applications à partir de zéro à chaque fois serait très fastidieux. C'est pourquoi Apple fournit aux développeurs avec un bon ensemble de bibliothèques. Les bibliothèques sont tout simplement une énorme quantité de code source écrit par Apple, et ce code source qui prend soin de la plupart des choses que les applications ont en commun. Ces bibliothèques sont appelées Cacao.
Maintenant, si vous ne pouvez pas comprendre comment étendre une classe, vous êtes plus probablement parler Objective-C. Elle n'a rien à voir avec Xcode ou de Cacao, vous pourriez être très bien écrit certains GNUstep code pour Linux à l'aide de Vim comme un IDE et GCC comme compilateur. D'autre part, si votre Xcode processus de build échoue à cause de certaines mystérieuse, ou si vous essayez de construire une bibliothèque statique dans Xcode, c'est clairement un Xcode question. Et si vous ne pouvez pas comprendre comment utiliser certaines NSObject établissement ou de la NSFileManager classe, c'est le Cacao. (Mais il n'a pas à être Xcode que vous pouvez utiliser AppCode ou TextMate que votre IDE!)
Initialement disponible sur mon blog. Se sentir libre pour le lien vers le blog ou sur cette question lors de la retagging ou d'expliquer la différence.
Xcode est un environnement de développement intégré (IDE)—la demande—qu'utilisent les développeurs d'écrire des applications pour iOS et/ou OS X. Il comprend l'éditeur, le système de génération (à déterminer ce qu'il faut construire pour produire de la cible souhaitée), et pas mal d'autres choses.
Objective-C est la langue principale que les développeurs à écrire de tels logiciels. Ils peuvent écrire des bouts de pure C, l'utilisation de C++ ou de la combiner avec Objective-C (production d'Objective-C++), ou écrire une partie ou l'ensemble du programme dans une autre langue entièrement, comme MacRuby, Java (avec j2objc), ou C# (avec MonoTouch).
Xcode comprend le compilateur Clang, qui transforme le code écrit en Objective-C, C, et dans quelques autres langues en code exécutable. La plupart des messages d'erreur viennent de Bruit, et de Xcode s'appuie fortement sur elle pour l'indexation de la recherche, de la syntaxe, et la terminaison des noms de code Objective-C.
Cocoa et Cocoa Touch sont des structures d'application. Chacun est une suite de plusieurs cadres (bibliothèques stockées dans des dossiers nommés blahblah.cadre), tels que:
(et beaucoup, beaucoup plus d'où ils viennent, surtout sur Mac)
Donc:
Une erreur évidente est de ne pas différencier Xcode de tout le reste. Xcode est l'outil que vous utilisez pour programme pour modifier le code, exécutez le code, etc. Donc, si vous rencontrez des problèmes avec le outil (par exemple, la fenêtre ne vous montre pas votre code correctement, ou si vous avez de la difficulté à attirer votre interface, etc.), c'est un Xcode problème.
Si vous ne comprenez pas pourquoi votre code ne fonctionne pasvous êtes probablement avoir un Objectif-C problème ou un problème de Cacao. Mais vous ne serez pas nécessairement savoir qui.
C'est un Objectif-C problème si la cause de votre problème est que vous ne savez pas comment la langue fonctionne (par exemple, vous ne savez pas ce que l'astérisque est pour, ou que la déclaration n'est pas l'instanciation, ou que les messages nul ne génèrent pas d'erreur, mais ne pas tout faire non plus).
C'est un problème de Cacao si vous n'avez pas saisir le délégué de l'architecture ou de la façon dont une vue de contrôleur de travaux.
Mais mon expérience de la façon dont les gens posent des questions, c'est que vous avez peut-être ignorants de qui de ces, vous êtes ignorant. Je ne veux pas vous personnellement, je veux dire nous tous. Cela peut rendre difficile de se poser la question correctement, car vous ne savez pas ce que c'est exactement que vous ne savez pas si vous l'avez fait, vous savez, et vous ne serait probablement pas avoir un problème (vous devez être de réparer le problème et à la prochaine chose).