我还在学习Swift,但我对基础知识及其与Objective-C的交互方式有很好的理解。在我的团队中,我们有一个Objective-C应用程序,我们正在应用程序中尝试一些Swift。我们过去的标准是将常量放在头文件中,如:
static NSString *const kSomeConstant = @"ConstantValue";
但是当我在Swift中引用这个值时,我收到一个链接器错误:
架构x86_64的未定义符号:
“_kSomeConstant”,引自: __TFFC22Commons_Tests36DCTestBTBusinessService25testSuccessfulFetchOffersFS0_FT_T_u0_KT_PSs11BooleanType_ 在DCTestBTBusinessService.o ld:找不到符号 体系结构x86_64 clang:错误:链接器命令失败并带有退出代码 1(使用-v查看调用)
如果我将静态const更改为#define,它会成功编译,但如果没有必要,这并不理想。知道为什么这不链接?谢谢你的帮助!
编辑:以下是我们尝试使用该值的示例。 CacheManager类是一个Objective-C类,containsObjectForKey接受一个NSString作为参数。
CacheManager.instance().containsObjectForKey(kSomeConstant)