我正在更新我的应用程序和公共库(动态框架).曾经是静态库作为
Xcode子项目,现在是一个包含swift代码的动态框架.
在编写我的应用程序代码时,我看到了一些编译器警告.在这个时候,他们只是警告.
在我的应用程序的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”行.
有没有办法避免这种警告?
解决方法
使用@import或#import< FMK / FMK.h>而是#import“fmk.h”