Не удается найти объявление интерфейса для UIView в iOS Swift Project

У меня есть swift проект, который я использую MBProgressHUD через файл заголовка моста. У меня проблема в том, что UIView Похоже, не распознается как тип, и я не знаю почему.

В моем соединительном заголовке у меня есть:

#import "MBProgressHUD.h"

Ошибки, которые я получаю, когда я пытаюсь собрать, все одинаковые:

Cannot find interface declaration for 'UIView', superclass of MBProgressHUD.

Я проверил файл MBProgressHUD и вижу, что он определенно импортирует следующее:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>

#import "MBProgressHUD.h"
#import "CSNotificationView.h"

Кто-нибудь еще видел подобную проблему? Если да, знаете ли вы, в чем проблема, и как я могу это исправить?

4 ответа

Решение

Я также сталкивался с той же проблемой, и вот что я сделал, чтобы использовать MBProgressHud с Swift 2

1) Укажите use_frameworks! в вашем подфиле использовать фреймворки.

2) Добавьте #import в заголовок моста, используйте угловые скобки вместо двойных кавычек, например -

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>
#import <MBProgressHUD/MBProgressHUD.h>

3) в ваш файл swift также импортируйте MBProgressHUD например

import UIKit
import MBProgressHUD

Теперь вы можете использовать MBProgressHud как -

MBProgressHUD.showHUDAddedTo(self.view, animated: true);

Надеюсь, это поможет.

Удалить свой существующий bridging header файл и добавить новый.

Убедитесь, что вы добавляете свой путь заголовка моста в SWIFT_OBJC_BRIDGING_HEADER под целевым разделом вместо раздела проекта.

Вы также можете попробовать добавить предварительно скомпилированный файл заголовка префикса (.pch) в ваш проект. Вы найдете его в File/New/Other, там добавьте #import <UIKit/UIKit.h>предложение, а затем в настройках сборки цели в разделе "Apple LLVM 7.0 - язык" установите флаг заголовка прекомпилированного префикса в значение "да" и добавьте файл.pch, например, "YourProjectName/YourProject-Prefix.pch".

Смотрите также этот ответ.

Если вы включите MBProgressHUD библиотека с CocoaPods попробуйте включить строку, похожую на эту

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>

#import "MBProgressHUD.h"

в BridgeHeader.h и в ключе заголовка моста Objective-C в настройках сборки выберите заголовок. Для проверки правильности добавления библиотеки я пытаюсь показать ход выполнения этой инструкции в ViewController:

MBProgressHUD.showHUDAddedTo(self.view, animated: true);

Я попробовал это в новом проекте, и это работает.

Другие вопросы по тегам