Objective c 错误-架构arm64有2个重复符号?
我有一个Objective c 错误-架构arm64有2个重复符号?,objective-c,xcode,Objective C,Xcode,我有一个BConstants.h文件,我把我的项目的所有常量都放在那里。文件如下所示: #ifndef asdf_BConstants_h #define asdf_BConstants_h typedef NS_ENUM(NSUInteger, BTheme) { kField }; typedef NS_ENUM(NSUInteger, BItem) { kBox }; typedef NS_ENUM(NSUInteger, BMovementState) {
BConstants.h
文件,我把我的项目的所有常量都放在那里。文件如下所示:
#ifndef asdf_BConstants_h
#define asdf_BConstants_h
typedef NS_ENUM(NSUInteger, BTheme) {
kField
};
typedef NS_ENUM(NSUInteger, BItem) {
kBox
};
typedef NS_ENUM(NSUInteger, BMovementState) {
kTouchUp,
kTouchDown
};
#endif
当我将以下三行添加到此文件时,当文件被导入另一个.m
文件时,我会收到后续错误
...
NSString * const kHero = @"Hero";
NSString * const kCount = @"Count";
#endif
错误:
duplicate symbol _kHero in:
...list of .o files
duplicate symbol kCount in:
...list of .o files
2 duplicate symbols for architecture arm64
我已经查看了已经发布的问题,以便说明我在应用程序
目标的编译源中可能有重复的文件,但是我检查了,没有发现重复的文件。这个问题还有什么原因,是不是在BConstants.h
文件中包含了这两个NSString常量 除了重复的文件外,此错误还有两种可能
您可能错误地导入了.m文件而不是.h文件
常数kHero和kCount已在其他一些文件中定义。作为
您正在常量文件中定义这些常量,然后只需导入即可
将该文件保存在Prefix.pch文件中,并从其他任何位置删除
是的,我认为需要先编译那些NSString
s。我只是直接将.h
导入任何.m
文件。我是否将BPContants.h
放在前缀中的导入
和#endif
之间?此答案没有解决实际问题。