界面'NSObject'

时间:2016-02-02 22:00:59

标签: ios objective-c xcode swift xcode7

我正在更新我的应用和公共库(动态框架)。曾经是静态库作为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”行。

有没有办法避免这种警告?

3 个答案:

答案 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文件。两次导入文件时出现此错误。