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

How to remove "undefined symbol" error in Objective-C?

提问人:tombuarts 提问时间:11/15/2023 最后编辑:HangarRashtombuarts 更新时间:11/15/2023 访问量:54

问:

我在 global.h 文件中将变量声明为 .我在所有视图控制器上都有我想使用变量的地方。如果我不为我的项目分配值,则生成并运行。如果我分配一个值,我会得到以下错误,并且构建失败;ueExtern int ue;#include "global.h"ueue

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

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

objective-c 未定义符号

评论

0赞 Cy-4AH 11/15/2023
我认为对于这个基本问题可以回答 Stackoverlow 的 AI:stackoverflow.com/ai/search
0赞 Willeke 11/15/2023
我试图重现该问题,但得到“未知类型名称'Extern';你是说'extern'吗?
0赞 Willeke 11/16/2023
这回答了你的问题吗?关于 Objective-C 项目中使用的 extern 的 3 个问题

答:

1赞 Mykyta iOS 11/15/2023 #1

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

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

static int ue = 1;

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

extern int ue;

在 .m 文件中,分配值:

int ue = 1;

评论

0赞 tombuarts 11/16/2023
使用静态就像一个魅力。非常感谢。