我有一个使用CocoaPods的项目,并使用' SCLAlertView-Objective-C'荚。该pod使用@import UIKit;
模块样式导入。我已设置"启用模块(C& Objective-C)"和#34;自动链接框架"在目标和项目设置中都为YES。我仍然在使用' @ import'当模块被禁用时#34;错误。
是否有任何可能阻止Xcode启用模块的内容,例如使用.pch文件,任何链接器标记或其他我未提及的内容?我还尝试清理项目和项目构建文件夹。这没有任何效果。
另外值得注意的是,我的项目有多个目标,并且还有一个iOS 7.0的部署目标。 My Base SDK设置为iOS 8.3。
答案 0 :(得分:6)
我猜你的项目包含XXX.mm文件,但xcode只能启用C和objective-c模块。
请看一下这个答案供您参考: Using @import in objective C in conjunction with __cplusplus
我的解决方案是将@import xxx修改为#import。
祝你好运。答案 1 :(得分:6)
我刚刚在一个我正在研究的ObjC ++项目中解决了这个问题,需要使用Firebase。
只需制作包含以下内容的ObjC(.m
)文件。
#import <Foundation/Foundation.h>
@import Firebase; // << swap this for your specific import
即可,只需在#include
文件中使用.mm
即可获得所需的特定标头。对我来说意味着:
#include <"Firebase/Firebase.h">
#include <"FirebaseAuth/FirebaseAuth.h">
只是强调一点,对于这个"Enable Modules (C & Objective-C)"
来说,YES
已经scala> def anythingThatIsClosable(foo: { def close: Unit }): Unit = foo.close
anythingThatIsClosable: (foo: AnyRef{def close: Unit})Unit
scala> class ICanCloseResources {
| def close = println("yay closed")
| }
defined class ICanCloseResources
scala> anythingThatIsClosable(new ICanCloseResources())
yay closed
没有任何与链接选项混淆的问题。升级到XCode7似乎没什么帮助。
希望这有助于某人:)
答案 2 :(得分:0)
build选项并没有真正起作用。我通过将-fcxx-modules(目标C ++)或-fmodules(目标C)手动添加到“ C Flags” /“ C ++ Flags”来解决了这个问题。
为我工作。