Problème avec l'utilisation des constantes

Djobird

Membre enregistré
11 Décembre 2009
2
0
41
Bonjour à vous !
Voila je débute sous l'Objectiv C et j'ai quelques soucis concernant les constantes.

J'ai une série de constante pour une classe, je les définis donc dans mon entête de la facon suivante :
Bloc de code:
#import <UIKit/UIKit.h>


@interface CatalogueExplorerViewController : UITableViewController {
    IBOutlet UITableView *tableView;
    (...)
 
    
}
    (...)
    const NSString *elementDirectory = @"dir";
    const NSString *attributId = @"id";

- (void)parseXMLFile;

@end


Seulement, en en effécuant ceci j'ai une erreur de compilation du au linkage :
ld: duplicate symbol _elementDirectory in path/build/CarreRouge.build/Debug-iphonesimulator/CarreRouge.build/Objects-normal/i386/CatalogueExplorerViewController.o and path/build/CarreRouge.build/Debug-iphonesimulator/CarreRouge.build/Objects-normal/i386/CarreRougeAppDelegate.o

"Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1"

Alors j'ai essayé de le mettre dans mon .m, ce qui permet d'éviter cette erreur. Le problème est que j'ai ensuite d'autres classes qui héritent de mon CatalogueExplorerViewController et qui ont besoin de ces constantes. Or si elles sont def dans le .m, l'héritage n'a pas lieu :/

Est ce que vous seriez me dire comment je dois faire ?
 
J'avais essayé ce conseil mais sans succès. Il est vrai que j'aurais peut etre pu le reprendre dans le sujet.
Le compilo ne reconnait pas le mot clé extern :/
Si je fais :

Bloc de code:
#import <Foundation/Foundation.h>


@interface Constants : NSObject {
    
    extern NSString * const elementDirectory;
    (...)
}

@end


J'ai alors l'erreur :
error: expected specifier-qualifier-list before 'extern'