相关疑难解决方法(0)

Swift编译器错误:"框架模块内部的非模块化头"

现在我想将我的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

frameworks objective-c swift

200
推荐指数
8
解决办法
8万
查看次数

在框架模块中包含非模块化头

我正在使用Xcode 6,

1)首先,我正在创建一个动态库(CoreLibrary).该库包含RequestPoster.h文件.

2)然后我创建了一个Cocoa Touch Framework并添加了这个动态库(CoreLibrary).

3)然后在我的项目中添加此框架,它在RequestPoster.h文件(CoreLibrary)中给出错误.

错误:在框架模块类中包含非模块化头:

ifaddrs.h,arpa/inet.h,sys/types.h>

在项目中找不到这些文件.

cocoa-touch objective-c

127
推荐指数
12
解决办法
8万
查看次数

XCode6:接收错误"在框架模块中包含非模块化头"

我有一个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"是否为良好做法?为什么这是一个错误?

谢谢.

xcode clang ios-frameworks xcode6

14
推荐指数
1
解决办法
1万
查看次数