[RESOLU] Comment utiliser la classe CARingBuffer sur un projet iPhone ?
Bonjour à tous,
je suis actuellement entrain de développer une application Audio sur iPhone et je voudrais utiliser la classe CARingBuffer disponible dans le repertoire PublicUtility dans Extras de CoreAudio.
Seulement lorsque j'include le header et que je declare un objet CARingBuffer dans le header de la viewController, j'ai plein d'erreurs de compilation.
Pouvez-vous m'aider ?
Pour reproduire le probleme, c'est assez simple, créer un nouveau projet iOS "ViewBased Application", puis d'essayer de d'inclure CARingBuffer ("#include CARingBuffer.h") dans le header de votre viewController et de declarer un objet de ce type.
Merci d'avance.
je suis actuellement entrain de développer une application Audio sur iPhone et je voudrais utiliser la classe CARingBuffer disponible dans le repertoire PublicUtility dans Extras de CoreAudio.
Seulement lorsque j'include le header et que je declare un objet CARingBuffer dans le header de la viewController, j'ai plein d'erreurs de compilation.
Pouvez-vous m'aider ?
Pour reproduire le probleme, c'est assez simple, créer un nouveau projet iOS "ViewBased Application", puis d'essayer de d'inclure CARingBuffer ("#include CARingBuffer.h") dans le header de votre viewController et de declarer un objet de ce type.
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voici le contenu de mon header testViewController :
Le contenu de testViewController.m
et j'ai 4 erreurs de compile qui sont localisé dans le CARingBuffer.h etrangement :
1) Initializer element is not a constant sur la ligne
2) Expected ';' after top level declarator, Expected '='... or '__atribute__' before 'CARingBuffer'
3) Initializer element is not a constant sur la ligne
4) Expected ';' after top level declarator, Expected '='... or '__atribute__' before 'CARingBuffer'
Si c'est une classe du framework, est-ce qu'il ne faut pas plutôt un include du genre :
#include < > et pas #include " " ?
Tu n'as quand même pas copié le fichier .h dans le folder de ton appli ?
Sethy
Je l'ai juste ajouté a mon projet.
Les <> ne fonctionnent pas. Il me dit "No such file ...".
Pour info CARingBuffer ne fait pas partie du framework mais est une classe C++ ecrite par Apple pour aider les developpeurs
http://developer.apple.com/library/ios/#qa/qa1665/_index.html
C'est vraiment bizarre car j'include des classes en C et ça fonctionne impec.
Y a t'il des specificités au C++ ?
C'est une condition sine qua non pour utiliser Objective-C++.
Tu m'as en partie aider.
Par contre je ne comprends pourquoi ça fonctionne maintenant.
Disons que dans mon projet j'ai
-> mon AppDelegate
-> Classe A dans laquel j'include le "CARingBuffer.h" et qui etait bien en .mm
-> Classe B qui include mon appDelegate et qui etait en .m
-> classe C qui include mon appDelegate et qui etait en .m
Pour que ça fonctionne j'ai du mettre toute les classes en .mm
Je n'ai pas compris pourquoi ?
Avez-vous une idée ?
Mais en gros, ça te permet d'instancier des objets C++ à partir d'ObjC et faire des appels de méthodes C++, et réciproquement, mais pas plus.
J'ai déclaré une structure opaque dans le header.
Et je n'ai inclue le CARingBuffer.h que dans le .mm ce qui m'évite de mettre toutes les autres classe en .mm.
Et donc je declare ma struct dans le .mm.
Merci a vous deux pour votre aide