Не удается найти объявление интерфейса для 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);
Я попробовал это в новом проекте, и это работает.