【发布时间】:2020-10-27 13:42:58
【问题描述】:
由于安全原因无法粘贴原始代码,因此尝试更加完整
- 有一个名为 Utils.xcodeproj 的项目,该项目有一个名为 Resources.m 的目标 c 文件,其标头公开为公共标头。
- 拥有另一个名为 main.xcodeproj 的项目,其中引用了此 Utils 项目。
现在在编译 main.xcodeproj 时出现错误“类资源的接口定义重复”iOS/Utils/Utils/Resources.h:23:1: @interface Resources : NSObject
Build/Products/Debug-iphoneos/include/Utils/Resources.h:23:12: 注意:之前的定义在这里@interface Resources: NSObject
有没有办法克服这个错误或把这个错误变成警告?
Class Resources.h
@protocol ResourcesDelegate;
@interface Resources : NSObject
@property (weak, nonatomic) id<ResourcesDelegate> delegate;
+ (void) setDefault:(UIView *)view;
@end
@protocol ResourcesDelegate <NSObject>
@required
- (void)loadFromSDK:(NSString*)Name;
@end
Class Utils-Bridging-Header.h
#import "Resources.h"
Class XYZ in main.xcodeproj
#import "Utils/Resources.h"
[Resources setDefault:view]
【问题讨论】:
-
可能是导入问题,例如,在 A 中,您导入 B 和 C。在 B 中,您导入 C,因此 A 以 C 的两个定义结束。也许,也许不是......但你可以解决这个问题如下。在 B 中使用
@class C;。这将定义一个名为 C(在 B 中)的类,但实际上并未给出定义。这取决于您的设置,您需要找出重复发生的位置,并将#import替换为@class以防止它发生。这是一个猜测 - 可能是您确实复制了文件并编译了两次,或者甚至您有两个资源,一个在主项目中,一个在另一个项目中...... -
... ps... 解决这么模糊的事情当然很难,但至少这些是您可以尝试的事情...但是有件事告诉我您很坚持...跨度>
标签: objective-c