Soucis d'"#import" avec JSON.

Bonjour à  tous.



J'ai un petit soucis avec un #import.



Mon projet contient le projet BMSocialShare qui lui-même contient les classes JSon.h.



Je voudrais utiliser ces classes depuis mon projet principal mais je n'arrive pas à  y accéder.

Si je fais un #Import <SBJson/SBJson.h> le compilateur me signale une erreur de type "Duplicate interface".



En gros, la structure de mon projet est :
  • Mon Projet.xcodeproj
    • BMSocialShare.xcodeproj
      • Classes (dossier)
        • SBJon.h (fichier)
        • ...

    • ViewController.m (là  où je veux utiliser le SBJson.h).



Auriez-vous une idée ?



Merci par avance.

Réponses

  • Regarde si tu n'as pas importé le .h dans un .m et un .h d'une même classe ?
  • Non, non, j'ai uniquement l'#import" dans le ViewController.h (et non .m comme dans mon premier post).
  • Tu as bien fait des #import et non #include ? Le message que tu as n'est pas censé apparaitre si tu passe par #import (qui protège des multiples inclusions).



    Vérifie également que tu n'ai pas deux fois le même fichier dans tes projets.
  • Alors il y avait un Include dans le projet BMSocialShare, mais le remplacer en #import ne change rien.



    Par contre, voilà  comment je fais mon #import : #import <SBJson/SBJson.h>.

    Dans ce cas, j'ai l'erreur de duplicate.



    Si je fais #Import "SBJson.h", j'ai un file not found, ce qui me semble logique.



    Dans mon projet, je n'ai qu'un seul fichier SBJson.h.
  • Alors...

    Vu que tu as ta propre classe SBJason.h, je dirais qu'il faut un #import avec des guillemets...

    S'il ne le trouve pas, regarde que dans Build Phases, tu aies bien le fichier .m/h
  • C'est bizarre de mettre un projet dans un projet. J'aurais plutôt mis mes projets à  plat dans un workspace, puis défini le paramètre de Build "User Header Path" pour que le compilateur aille chercher les fichiers d'interface indifféremment dans tous les projets du workspace.
  • J'ai résolu mon soucis de manière pas super propre, en attendant mieux et peut-être une remise à  plat comme le suggère jpimbert.



    En gros, j'ai copié les classes de JSON du projet BMSocialShare, pour les coller au niveau de mon projet perso, j'ai renommé les fichiers générants les erreurs avec Refactor > Rename, et ça roule.



    Vivement un nettoyage de code.
Connectez-vous ou Inscrivez-vous pour répondre.