2

我正在制作一个小而简单的应用程序,所以我决定使用全局变量而不是单例。我也只用一个。

我的应用程序从一个小的首选项文件中提取一个 int,并将其设置为全局变量作为 NSInteger。应用程序运行时可能会更改全局变量。

应用控制器.h

#import <Cocoa/Cocoa.h>

extern NSInteger preferenceNumber;

@interface ....

应用控制器.m

-(void)someMethod {
    ...
    //fileContents is a string containing the int that is inside the file
    preferenceNumber = [fileContents intValue]
    ...
}

链接器错误 (2):架构 x86_64 的未定义符号: “_preferenceNumber”,引用自: AppController.o 中的 -[AppController someMethod1] -AppController.o 中的 [AppController someMethod2:] ld:未找到架构 x86_64 的符号clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

粗体部分是两个错误。

这是什么原因造成的?解决它的最简单,最好的方法是什么?

4

1 回答 1

0

只需在您的实现类中添加一行:-

AppContollr.m


@implementation AppContoller
NSInteger preferenceNumber;
于 2013-10-08T04:30:52.720 回答