架构arm64的未定义符号:“_ OBJC_CLASS _ $ _ GlobalVariables”,引自:MapViewController.o中的objc-class-ref

时间:2017-11-10 10:34:53

标签: ios objective-c xcode

我正在尝试创建一个Singleton,所以我可以全局使用一个变量,但是我得到了这个错误:

  

架构arm64的未定义符号:
  “_OBJC_CLASS _ $ _ GlobalVariables”,引自:         MapViewController.o中的objc-class-ref ld:未找到架构arm64 clang的符号:错误:链接器命令失败并退出   代码1(使用-v查看调用)

此问题的一些解决方案建议在构建阶段添加第三方库,但我不知道要添加哪个库。这是我的Singleton类:

.h

@interface GlobalVariables : NSObject

@property BOOL *MAP_SATELLITE_VIEW;

+ (GlobalVariables*)sharedInstance;

@end

的.m

#import <Foundation/Foundation.h>

#import "GlobalVariables.h"


@implementation GlobalVariables

@synthesize MAP_SATELLITE_VIEW;

#pragma mark Singleton Methods

+ (GlobalVariables*)sharedInstance {
    static GlobalVariables *obj = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        obj = [[self alloc] init];
        [obj loadVariables];
    });
    return obj;
}

- (void)loadVariables {

        self.MAP_SATELLITE_VIEW = NO;
}

@end

这就是我试图从MapViewController访问MAP_SATELLITE_VIEW变量的方法:

 [GlobalVariables sharedInstance].MAP_SATELLITE_VIEW

2 个答案:

答案 0 :(得分:2)

确保在“编译源”中添加“GlobalVariables”。构建阶段 - &gt;编译源并添加文件。

答案 1 :(得分:0)

我发现了问题。在右侧xcode的.m文件中,我必须勾选目标成员资格的复选框。