Question

J'ai appris Objective-C et Cocoa en parcourant le livre de Hillegass. et il me semble que je ferais peut-être mieux d'utiliser Objective-C ++. Objective-C semble être le choix évident pour développer des interfaces utilisateur, mais j'ai une très solide expérience en C ++ et aimerais développer des applications en C ++ et utiliser Objective-C ++ pour l'intégration de l'interface utilisateur. Mais je me demande si Apple continuera à développer Objective-C ++ ou si cela deviendra une impasse.

Quelqu'un utilise-t-il Objective-C ++?

Était-ce utile?

La solution

Clause de non-responsabilité: je ne travaille ni ne parle pour Apple. C’est donc mon avis:

Je ne peux pas parler pour les grands magasins de développement, mais dans mon petit groupe, nous avons utilisé Objective-C ++ à la fois pour l'intégration de bibliothèques C ++ et comme vous le proposez pour l'écriture de backends en C ++. Comme @alxp le mentionne, des opérations telles que la gestion des exceptions au-delà des frontières linguistiques sont pénibles, mais avec un peu de planification, la plupart de ces douleurs peuvent être évitées. Pour les développeurs C ++ expérimentés, les gains peuvent en valoir la peine.

En termes de support, je pense que vous pouvez supposer que le support dans son état actuel ne disparaîtra pas de si tôt. Cela fait partie de la base de code GCC et la chaîne d'outils Clang (la prochaine chaîne d'outils de compilateur d'Apple) prend entièrement en charge Objective-C ++. Par ailleurs, il n’existe aucune garantie officielle que Apple continue à développer l’intégration en corrigeant certaines des verrues, par exemple.

Pour les projets en cours, je dirais que si utiliser Objective-C ++ présente des avantages, vous pouvez compter sur le support existant, et vous devriez l'utiliser.

Autres conseils

La seule fois où j'ai utilisé ObjC ++ a été de porter des bibliothèques pour les rendre accessibles à partir de mon code ObjC. Les conflits entre la façon dont ObjC ++ et ObjC traitent des choses telles que les exceptions et la création et la destruction de classes ont tout simplement compliqué la tâche de jongler entre les deux langages d'un projet.

Je ne pense pas que le support disparaîtra bientôt de la même manière que Cocoa / Java, car il fait partie intégrante de GCC et le fait que Objective-C ++ soit compilé directement en C ++ de la même manière qu'Objective-C peut compiler. Je ne trouve toujours pas l’environnement très agréable pour construire un logiciel par rapport à Objective-C et pour pouvoir pleinement utiliser confortablement les frameworks fournis par OS X.

Objective-C ++ restera probablement pris en charge aussi longtemps que Objective-C l’est. Obj-C ++ est un objectif de base pour clang , qui devrait éventuellement remplacer gcc en tant que Apple. Compilateur préféré. L'utilisation est susceptible d'augmenter à mesure que les applications de carbone sont déplacées vers les frontaux Cocoa.

Bien sûr, le mot "probable" & # 8220; apparaît deux fois plus haut parce qu'Apple est tellement imprévisible. : -)

Je soupçonne qu'Apple continuera à prendre en charge Objective C ++ pendant un certain temps, car je ne vois pas d'effort récurrent important requis par Apple pour maintenir Objective C ++ à mesure que Apple mette à jour Cocoa et Objective C ++.

L’autre jour, j’ai été surpris de tenter de refactoriser du code Objective-C contenu dans un fichier Objective-C ++ en utilisant la prise en charge du refactoring par Xcode. Même si les éléments de menu sont activés, j'ai obtenu le code "Impossible de refactoriser" le code Objective-C ++. Xcode ne peut refactoriser que le code C et le code Objective-C. & Quot; Message d'erreur. Ainsi, bien que la compilation d’Objective-C ++ continue de fonctionner indéfiniment, je soupçonne qu’Objective-C ++ sera un citoyen de seconde classe au sein de Xcode.

Je l'ai extrait de tout mon code. Aucun fichier .mm.

Mais vous avez besoin de fichiers .cpp pour parler à des fichiers .m. La solution est un fichier .c / .h qui conserve la barrière hémato-encéphalique.

C ++ avec objectif-C est généralement juste trop de bagages.

Objective-C n’est en réalité qu’un paquet de code C qui émule des objets en langage C et utilise toujours le compilateur C, y compris les fichiers d’en-tête Objective-C. Utiliser Objective-C ++ utilise le compilateur C ++ et inclut les en-têtes Objective-C en tant que code C, car C ++ exécutera le code C. Objective-C ++ est essentiellement constitué de C, C ++ et Objective-C (qui n’est que C).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top