我正在使用Xcode6 GM来创建Coacoa Touch Framework(Xcode6中的新功能),然后这个框架被包含在我的应用程序中。
一切都很好(工作正常),除了我在“#import”中收到警告。根本原因是什么?
答案 0 :(得分:47)
我遇到了同样的问题,并最终通过将我的项目标题添加到伞标题中来修复它。当您创建新框架时,它应该以项目标题的单个.h
文件开头(在您的情况下为DirectProximityFramework.h
)。
这个文件里面有一条评论:
在此标题中,您应该导入您的所有公共标题 框架使用
之类的语句#import <DirectProximityFramework/PublicHeader.h>
所以只需在此文件中添加GeofencingHelper.h
文件:
#import <DirectProximityFramework/GeofencingHelper.h>
这应删除所有警告!
答案 1 :(得分:6)
也许,您可以通过在&#34; DirectProximityFramework.h&#34;
中添加以下行来停止此警告#import <DirectProximityFramework/GeofencingHelper.h>
...等
我建议检查
[定位您的框架] - &gt;构建阶段 - &gt;标题 - &gt;公共
答案 2 :(得分:1)
我遇到了这个问题,上面的所有解决方案都不适合我,因为该文件不应该在伞形标题中。
因此,如果这是您自己的框架,并且该特定文件不应位于伞形标题中,请确保它在目标成员资格部分中未标记为public
。
为我修好了。
答案 3 :(得分:0)
//在此标题中,您应该使用
之类的语句导入框架的所有公共标题 #import <GameworkSDK/GWObject.h>
#import <UIKit/UIKit.h>
#import <GameworkSDK/GWObject.h>
//! Project version number for GameworkSDK.
FOUNDATION_EXPORT double GameworkSDKVersionNumber;
//! Project version string for GameworkSDK.
FOUNDATION_EXPORT const unsigned char GameworkSDKVersionString[];
答案 4 :(得分:0)
我有这个问题可可豆荚
我的解决方案非常简单,但我永远想知道。
glhf!
答案 5 :(得分:0)
我有同样的问题,我的解决方案是..
当您创建框架项目时。您的项目会自动创建“yourProjectName.h”文件,在此头文件中导入类类。
在我的情况下,我收到missing submodule 'MSFramework.MSLocationManager' [-Wincomplete-umbrella]
此警告。
通过导入
解决 #import <UIKit/UIKit.h>
# import "MSLocationManager.h"
//! Project version number for MSFramework.
FOUNDATION_EXPORT double MSFrameworkVersionNumber;
//! Project version string for MSFramework.
FOUNDATION_EXPORT const unsigned char MSFrameworkVersionString[];
这里我只是在头文件中添加# import "MSLocationManager.h"
。
答案 6 :(得分:0)
在项目设置中设置标题搜索路径:
TARGETS /构建设置/标头搜索路径 “$ PODS_CONFIGURATION_BUILD_DIR / [您的PROJ NAME] / [您的PROJ NAME] .framework / Headers”
现在导入头文件。
#import <DirectProximityFramework.h>
答案 7 :(得分:0)
如果不是您的框架并且无事可做,则可以以这种方式禁用警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincomplete-umbrella"
#import <DirectProximityFramework/GeofencingHelper.h>
#pragma clang diagnostic pop
注意-这不是解决方法,只是掩盖了问题。