如何消除 Objective-C 中的“未定义符号”错误?

问题描述 投票:0回答:1

我在 global.h 文件中将变量

ue
声明为
Extern int ue;
。我想要使用该变量的所有视图控制器上都有
#include "global.h"
。如果我不给
ue
赋值,我的项目就会构建并运行。如果我为
ue
分配一个值,我会收到以下错误并且构建失败;

未定义符号:_ue
链接器命令失败,退出代码为 1(使用 -v 查看调用)

我已经搜索了解决方案并尝试了一些建议,但我不断收到相同的错误。我之前在“global.h”中声明了多个变量,没有任何问题。

objective-c undefined-symbol
1个回答
0
投票

extern
修饰符意味着该值被分配给其他文件中的变量,因此您不应该就地执行它。有两种选择可以解决您的问题。

选项 1:将 global.h 中的变量声明为 static 而不是 extern。

static int ue = 1;

选项 2:使用 global.h 和 global.m 文件创建 Obj-C 类。从两个文件中删除所有内容(接口/实现)(您应该只在 .m 文件中保留

#import
指令)。在您的 .h 文件中声明一个 extern 变量。

extern int ue;

在您的 .m 文件中分配值:

int ue = 1;
© www.soinside.com 2019 - 2024. All rights reserved.