Tôi đã xác định một NSString để sử dụng làm miền lỗi trong NSError và đã sao chép ASIHttpRequest đang hoạt động như thế nào.ld: biểu tượng trùng lặp - do const
NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
tôi đặt const trong file .h riêng của mình // FPServerAPICoordinatorConstants.h
#ifndef FirePlayer_FPServerAPICoordinatorConstants_h
#define FirePlayer_FPServerAPICoordinatorConstants_h
NSString* const FPServerAPIErrorDomain = @"FPServerAPIErrorDomain";
#endif
nhưng khi tôi đưa nó vào nhiều hơn một .m
SomeFile.m
#import "FPServerAPICoordinatorConstants.h"
SomeOtherFile.m
#import "FPServerAPICoordinatorConstants.h"
tôi lỗi liên kết 'biểu tượng trùng lặp'
ld: duplicate symbol _FPServerAPIErrorDomain in SomeFile.o and ....SomeOtherFile.o for architecture armv7
vì vậy tôi thay đổi const thành #define và nó hoạt động tốt.
// 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
Nhưng có cách nào để có được const trong không gian toàn cầu không ném 'biểu tượng trùng lặp' không?
nếu bạn bỏ qua ma thuật bao gồm tệp, là câu hỏi của bạn giống như: "tôi có thể làm ** const int i = 42; ** hai lần trong cùng một nguồn/nhị phân không? –
có nhưng cũng 'cách bạn KHÔNG sử dụng #defines và sử dụng const trong không gian toàn cầu 'là nó có thể? nó được ưa thích? #define hoạt động nhưng tại sao có consts sau đó? Im một người java chuyển vào Obj-c Tôi havent đủ điều kiện trong voodoo 101 chưa –
Bạn chưa sao chép những gì ASIHttpRequest đang làm ở tất cả quay trở lại và nhìn lại – hooleyhoop