我创建了 Objective C头文件 。并在其中添加了一些属性。
我
static NSString* const kColor005C98 = @"005C98";
在Constants.h
文件中 声明
我在 Bridging-Header 文件中将此文件定义为#import "Constants.h"
现在,当我想kColor005C98
在某些 swift 文件中使用此属性时,构建失败,并且我正在
架构armv7的未定义符号:“ _ kColor005C98”,引用自:
我不知道我还需要做什么,所以我不会收到此错误?(我已经在其他 目标C 文件中成功使用了此属性,在这种情况下没有问题)
更新:
从Swift 2 / Xcode 7及更高版本开始,静态常量定义如下
static NSString* const kColor005C98 = @"005C98"; // in Constants.h file
被导入到Swift,可以毫无问题地使用。
(Swift 1.x的旧答案) 当代码
static NSString* const kColor005C98 = @"005C98"; // in Constants.h file
由 Objective-C 编译器处理,被视为结合在一个语句中的两件事:
例如,请参见 定义和声明之间有什么区别? 很好地说明了声明和定义之间的区别。
Swift编译器仅将该语句视为声明。因此,该变量未在任何地方定义,从而导致链接器错误。
要解决此问题,您必须将 定义 移至Objective-C文件:
// Constants.m:
#import "Constants.h"
NSString * const kColor005C98 = @"005C98";
并更改 声明 一个extern
声明:
// Constants.h:
extern NSString * const kColor005C98;
另外, 您可以删除static
修饰符:
NSString * const kColor005C98 = @"005C98";
使它可以与Swift一起使用。缺点是,当多个Objective-
C文件包含此行时,所有文件都将定义一个全局可见的符号kColor005C98
,从而导致“重复符号”链接器错误。
另一种选择 是改为使用宏定义:
#define kColor005C98 @"005C98"
在spring-kafka中,如何从包中添加类作为自定义头字段来信任? 消息是这样发送的: 接收端如下所示: 我不断得到的例外是:
我正在使用SpringBoot和JPA开发RESTfullWeb服务,但我遇到了一些类似的问题 [错误]执行目标org.springframework.boot失败:sping-boo-maven-plugin:1.5.3。释放:运行(default-cli)在项目SpringRest:一个异常发生在运行时。null: InvocationTargetExcture:错误创建bean与名称'ent
我需要使用 restlet 客户端放置以下 rest 请求: 我可以在一个单独的调用中获取XToken,但是在当前的调用中,我无法在我的ClientResource对象中设置“Authorization”头。 有人可以建议我需要为我拥有的以下代码行添加哪些代码: 在restlet中创建和添加“Authorization”标头会导致restlet客户端库中出现错误。 提前谢谢 阿希什·夏尔马
我是android开发的新手,我正在尝试创建一个自定义的适配器,为RecyclerView提供一个只包含一个图像和一个文本视图的视图。 但是,我试图为onBindViewHolder(VH,int)定义一个简单的扩展ViewHolder,而Android studio根本不会采用自定义ViewHolder,'MyViewHolder' - 说“该方法不会覆盖其超类中的方法。 如果我把参数变成一个普
当我编写以下代码时,我得到了预期的错误
问题内容: 我正在使用Spring&MongoDB作为数据库编写演示应用程序。 我的主域类如下: 关键是AdditionalData是未指定架构的子文档,它是一种用户定义的JSON。但是,当我解析此json(使用(DBObject)JSON.parse(value)表达式)时,它作为字符串存储在MongoDB中,因此我需要将其作为嵌套的文档结构。 搜索了几个小时,没有找到解决方法。有任何想法吗?