Использование @import при отключении модулей

У меня проблема

@import Foundation;

и я вижу:
@import vs #import - iOS 7

и я установил "Enable Modules" в "YES"

и моя проблема не решена.

Ответ 1

Я получил это предупреждение в проекте с нулевым быстродействием всякий раз, когда пытался добавить оператор @import SafariServices;.

Решение: Включить модули. Перейдите в раздел "Цели" > "Установки" и установите "Включить модули" (модули C и Objective-C) на YES.

Я применил переключатель Build Settings to change.

Ответ 2

Возможная причина в том, что вы используете Objective-C ++. Затем модули отключены, несмотря на правильные настройки сборки.

Ответ 3

Проверьте, используете ли вы #import "ProductName-Swift.h" где-нибудь в файлах .mm или других файлах, отличных от файлов objc.

Потому что, если вы используете этот импорт в файлах cpp, то модули автоматически отключаются.

Ответ 4

Я смешивал ObjC, ObjC++, C++ и металл. Всякий раз, когда я получаю "использование @import, когда модули отключены", я пытаюсь заменить:

@import Name; 

с:

#import "Name/Name.h"

Например, заменить:

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

с:

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

Вроде работает.