我在global al.h文件中将变量ue声明为Extern int ue;.我在所有要使用变量的视图控制器上有#include "global.h"个.如果我没有为ue赋值,我的项目将构建并运行.如果我将一个值赋给ue,我会得到以下错误,并且构建失败;

undefined symbol: _ue
Linker command failed with exit code 1 (use -v to see invocation)

我一直在寻找解决方案,并try 了一些建议,但我总是得到同样的错误.我以前在"global al.h"中声明了多个变量,没有任何问题.

推荐答案

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

选项1:在global al.h中将变量声明为静态变量,而不是外部变量.

static int ue = 1;

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

extern int ue;

在.m文件中指定值:

int ue = 1;

Objective-c相关问答推荐

目标 C:什么是(id)发件人?

MKMapView 上的 UIPanGestureRecognizer?

在 Objective-C 中实现纯虚方法

为什么 UICollectionView 的 UICollectionViewCell 没有在用户时突出显示?

在子类中覆盖init

碰撞技术如何运作?

在 UILabel.attributedText *not* 蓝色和 *not* 下划线

如何在 XCode 4 中创建 dSYM 文件?

从 Unix 时间戳创建 NSDate

何时使用静态字符串与 #define

iOS 7 - viewDidLoad 和 viewDidAppear 之间的区别

如何更改 UICollectionView 中的滚动方向?

如何删除 xcode 5 中的旧配置文件?

如何从 AVPlayer(不是 AVAudioPlayer)获取持续时间?

[MFMailComposeViewController canSendMail] 什么时候返回 NO

当服务器上的图像文件更改时,我的应用程序中的 SDWebImage 缓存图像会发生什么情况?

[NSNull null] 和 nil 有什么区别?

如何确定 UICollectionView flowLayout 中单元格之间的间距

Apple 说 NSManagedObjectContext 归创建它的线程或队列所有时是什么意思?

在 iOS 6.0 的 Xcode 4.5 中我没有要求的日志(log)消息