现在我想将我的ObjC框架迁移到Swift,我收到以下错误:
include of non-modular header inside framework module 'SOGraphDB'
Run Code Online (Sandbox Code Playgroud)
引用是一个头文件,它只定义一个协议,我在一些类中使用这个头文件来使用这个协议.
似乎与模块功能有关,但目前还不太清楚如何修复,你知道一个解决方案吗?
更新:
这是一个Swift编译器错误.
更新2:
快速修复(但不解决根本原因)是将以下设置设置为yes:CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
我正在使用Xcode 6,
1)首先,我正在创建一个动态库(CoreLibrary).该库包含RequestPoster.h文件.
2)然后我创建了一个Cocoa Touch Framework并添加了这个动态库(CoreLibrary).
3)然后在我的项目中添加此框架,它在RequestPoster.h文件(CoreLibrary)中给出错误.
错误:在框架模块类中包含非模块化头:
ifaddrs.h,arpa/inet.h,sys/types.h>
在项目中找不到这些文件.
我有一个iOS应用程序,包括一个应用程序,一堆我的自定义框架,以及一堆第三方framweorks:
App
MyFramework1
MyFramework2
AFNetworking.framework
Mantle.framework
..
Run Code Online (Sandbox Code Playgroud)
我得到错误"在框架模块中包含非模块化头",具有以下结构:
App/AppDelegate.m
#import <MyFramework2/MyFramework2.h>
MyFramework2/MyFramework2.h
#import "MyClass.h"
MyClass.h
#import <Mantle/Mantle.h> <-- Error happens here
Run Code Online (Sandbox Code Playgroud)
MyFramework2建立本身.
尝试构建应用程序失败,并在导入Mantle.h的行中出现 " 在框架模块中包含非模块化头文件" 错误.
如果我在.m文件中导入Mantle.h,这个问题就消失了,但我不能这样做,因为我的类继承自MTLModelMantle中定义的.
此问题已在此处解决,但它不是特定于Swift的.
建议有(1)确保所有自定义框架标题都是公共的.他们是.(2)转到"目标"下的"构建设置",并设置"允许框架模块中的非模块化包含" YES.
有谁知道为什么会这样,以及如何解决它?将"允许非模块化包含在框架模块中"设置为"YES"是否为良好做法?为什么这是一个错误?
谢谢.