use of @import when modules are disabled

2019-02-07 16:36发布

问题:

I have a problem

@import Foundation;

and I see:
@import vs #import - iOS 7

and I set "Enable Modules" to "YES"

and my problem is not solved

回答1:

I got this warning in a zero-swift project whenever I tried to add the @import SafariServices; statement.

Solution: Enable the modules. Go to the Target > Build Settings and set the Enable Modules (C and Objective-C modules) to YES.



回答2:

The possible cause is that you use Objective-C++. Then modules get disabled despite the proper build settings.



回答3:

Check if you are using #import "ProductName-Swift.h" somewhere in .mm files or any other files other than objc files.

Because if you use this import in cpp files then modules gets disabled automatically.



回答4:

I've been mixing ObjC, ObjC++, C++, and Metal. Whenever I get the "use of @import when modules are disabled" I try replacing:

@import Name; 

with:

#import "Name/Name.h"

example, replace:

@import Metal;
@import MetalKit;
@import CoreVideo;

with:

#import "Metal/Metal.h"
#import "MetalKit/MetalKit.h"
#import "CoreVideo/CoreVideo.h"

It seems to work.