3

我有一个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

4 回答 4

8

我也遇到了同样的问题,这就是我在 swift 2 中使用 MBProgressHud 所做的

1)指定use_frameworks!在您的 Podfile 中使用框架。

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);

希望它会有所帮助。

于 2015-09-24T10:34:49.833 回答
3

删除现有bridging header文件并添加一个新文件。

确保SWIFT_OBJC_BRIDGING_HEADER在目标部分而不是项目部分下添加桥接头路径。

于 2015-09-18T14:48:43.283 回答
1

如果您包含MBProgressHUD库并CocoaPods尝试包含与此类似的行

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

#import "MBProgressHUD.h"

BridgeHeader.h构建设置中的 Objective-C Bridging Header 键中选择标题。为了测试是否正确添加了库,我尝试在以下指令中显示此指令的进度ViewController

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

我在一个新项目中尝试过它并且它有效。

于 2015-09-22T08:22:58.413 回答
1

您还可以尝试将预编译的前缀头文件 (.pch) 添加到您的项目中。您将在 File/New/Other 下找到它,添加#import <UIKit/UIKit.h>子句,然后在目标的构建设置中,在 Apple LLVM 7.0 - Language 下,将 Precompile Prefix Header 标志设置为 yes 并添加 .pch 文件,如“YourProjectName /YourProject-Prefix.pch”。

另请参阅此答案

于 2015-09-23T18:22:01.933 回答