Ios 未定义的体系结构符号arm64:“_OBJC“类”“全局变量”;,引用自:MapViewController.o中的objc类ref
我试图创建一个单例,以便全局使用变量,但出现以下错误: 架构arm64的未定义符号:Ios 未定义的体系结构符号arm64:“_OBJC“类”“全局变量”;,引用自:MapViewController.o中的objc类ref,ios,objective-c,xcode,Ios,Objective C,Xcode,我试图创建一个单例,以便全局使用变量,但出现以下错误: 架构arm64的未定义符号: “_OBJC_CLASS_$_GlobalVariables”,引用自: 在MapViewController.o ld:symbol中找不到架构arm64的objc类引用clang:错误:链接器命令失败,退出 代码1(使用-v查看调用) 这个问题的一些解决方案建议在构建阶段添加第三方库,但我不知道要添加哪个库。这是我的单身班: h m 确保“GlobalVariables”是“compilesources”中
“_OBJC_CLASS_$_GlobalVariables”,引用自: 在MapViewController.o ld:symbol中找不到架构arm64的objc类引用clang:错误:链接器命令失败,退出 代码1(使用-v查看调用) 这个问题的一些解决方案建议在构建阶段添加第三方库,但我不知道要添加哪个库。这是我的单身班: h m
确保“GlobalVariables”是“compilesources”中的外接程序。构建阶段->编译源代码并添加文件。我发现了问题。在右边xcode中的.m文件中,我必须勾选目标成员资格的复选框
MapViewController.h
(或MapViewController.m
),他们是否有#导入“GlobalVariables.h”
?地图卫星视图的类别是什么?实际上是一个BOOL
(因为它在代码中声明为指针,但在loadVariables
中,您似乎没有这样对待它。是的,我也导入了“GlobalVariables.h”对于.pch文件,您不需要@synthesis
,ivar不应该是BOOL*
,而应该是BOOL。我还建议以标准方式命名属性;
mapSatelliteViewEnabled`。感谢@bbum的宝贵意见。您是最好的“学生”:
@interface GlobalVariables : NSObject
@property BOOL *MAP_SATELLITE_VIEW;
+ (GlobalVariables*)sharedInstance;
@end
#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
[GlobalVariables sharedInstance].MAP_SATELLITE_VIEW