Я определял NSString для использования в качестве домена ошибки в NSError и копировал, как там работает ASIHttpRequest.
NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
Я поместил const в его собственный .h файл
// FPServerAPICoordinatorConstants.h
#ifndef FirePlayer_FPServerAPICoordinatorConstants_h
#define FirePlayer_FPServerAPICoordinatorConstants_h
NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
#endif
но когда я включил его в несколько .m
SomeFile.m
#import "FPServerAPICoordinatorConstants.h"
SomeOtherFile.m
#import "FPServerAPICoordinatorConstants.h"
Я получил ошибку компоновщика 'дублированный символ'
ld: duplicate symbol _FPServerAPIErrorDomain in SomeFile.o and ....SomeOtherFile.o for architecture armv7
поэтому я изменил const на #define, и он работал нормально.
// FPServerAPICoordinatorConstants.h
#ifndef FirePlayer_FPServerAPICoordinatorConstants_h
#define FirePlayer_FPServerAPICoordinatorConstants_h
//THIS WAS TRIGGERING link errors
//NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
//working OK
#define FPServerAPIErrorDomain @"FPServerAPIErrorDomain"
#endif
Но есть ли способ получить const в глобальном пространстве, чтобы не выбрасывать «дубликат символа»?