我正在制作一个小而简单的应用程序,所以我决定使用全局变量而不是Singletons。我也只使用一个。
我的应用程序从一个小的首选项文件中提取一个int,并将其设置为全局变量作为NSInteger。应用程序运行时可能会更改全局变量。
AppController.h
#import <Cocoa/Cocoa.h>
extern NSInteger preferenceNumber;
@interface ....
App Controller.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查看调用)
粗体部分是两个错误。
造成这种情况的原因是什么?解决它的最简单,最好的方法是什么?
答案 0 :(得分:0)
只需在实现类中添加一行: -
AppContollr.m
@implementation AppContoller
NSInteger preferenceNumber;