我在NSError中定義了一個NSString作爲錯誤域,並且正在複製ASIHttpRequest如何做。ld:重複的符號 - 由const引起的
NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
我把常量在它自己的.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
所以我將常量改爲#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不拋出'重複符號'?
,如果你離開了包括文件魔力,是你的問題一樣:「我該怎麼辦** const int的I = 42; **在相同的源/二進制兩次 – 2012-03-06 12:18:25
肯定的,但也「你怎麼不?使用#defines和在全局空間中使用const?是否有可能?它是首選?#define工作,但爲什麼有常量?Im一個java人搬入Obj-c我沒有在Voodoo 101合格但尚未 – 2012-03-06 12:23:13
您尚未複製什麼ASIHttpRequest做所有回去再看看 – hooleyhoop 2012-03-06 12:38:37