我正在更新我的应用和公共库(动态框架)。曾经是静态库作为Xcode子项目,现在是一个包含快速代码的动态框架。
在编写我的应用程序代码时,我看到了一些编译器警告。这时,他们只是警告。
在我的应用程序的MainViewController中,我包含一个用swift编写的文件。所以这有App-swift.h的导入。在这个自动生成的App-swift.h中,有一节:
#if defined(__has_feature) && __has_feature(modules)
@import UIKit;
@import my_framework;
#endif
在'my_framework'的内部,我对各种文件都有一个类别方法,例如: NSObject的+ my_framework.h
现在,我收到MainViewController.m的编译器警告,说“接口'NSObject'上的类别'my_framework'的重复定义”。下拉提供两个定义的位置。一个位置是我的框架内的实际类别头文件。编译器通过pch文件包含它来“看到”这个位置。另一个位置直接链接到我的App-swift.h文件“@import my_framework”行。
有没有办法避免这种警告?
答案 0 :(得分:8)
使用@import
或#import <FMK/FMK.h>
代替#import "fmk.h"
答案 1 :(得分:0)
同样的问题,我从my_framework.framework / Modules / module.modulemap中删除了行module * { export * }
,所以它看起来像:
framework module my_framework {
umbrella header "my_framework.h"
export *
}
警告消失了。然后,将module.modulemap添加到my_framework项目,并将其路径设置为MODULEMAP_FILE构建设置。
答案 2 :(得分:0)
在我的快速项目中,我正在使用桥头导入现有的Objective-C文件。两次导入文件时出现此错误。