在 iOS Swift 项目中找不到 'UIView' 的接口声明
Cannot find interface declaration for 'UIView' in 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"
还有其他人遇到过类似的问题吗?如果是,您知道问题出在哪里吗?我该如何解决?
删除现有的 bridging header
文件并添加一个新文件。
确保在目标部分而不是项目部分下的 SWIFT_OBJC_BRIDGING_HEADER
中添加桥接头路径。
如果您将 MBProgressHUD
库包含在 CocoaPods
中,请尝试包含与此类似的行
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>
#import "MBProgressHUD.h"
在
BridgeHeader.h
并在 Objective-C Bridging Header 中的 Build Settings 键中选择 header。
为了测试库是否正确添加,我尝试在 ViewController
:
中显示此指令的进度
MBProgressHUD.showHUDAddedTo(self.view, animated: true);
我在一个新项目中尝试过它并且它有效。
您也可以尝试将预编译的前缀头文件 (.pch) 添加到您的项目中。您会在 File/New/Other 下找到它,添加 #import <UIKit/UIKit.h>
子句,然后在目标的构建设置中,在 Apple LLVM 7.0 - Language 下,将 Precompile Prefix Header 标志设置为 yes 并添加 .pch这样的文件 "YourProjectName/YourProject-Prefix.pch"。
另见 this answer。
我也遇到了同样的问题,这就是我在 swift 2
中使用 MBProgressHud 所做的
1) 指定use_frameworks!在您的 Podfile 中使用框架。
2) 在桥接中添加#import header,使用尖括号而不是双引号,例如 -
#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);
希望对您有所帮助。
我有一个 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"
还有其他人遇到过类似的问题吗?如果是,您知道问题出在哪里吗?我该如何解决?
删除现有的 bridging header
文件并添加一个新文件。
确保在目标部分而不是项目部分下的 SWIFT_OBJC_BRIDGING_HEADER
中添加桥接头路径。
如果您将 MBProgressHUD
库包含在 CocoaPods
中,请尝试包含与此类似的行
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>
#import "MBProgressHUD.h"
在
BridgeHeader.h
并在 Objective-C Bridging Header 中的 Build Settings 键中选择 header。
为了测试库是否正确添加,我尝试在 ViewController
:
MBProgressHUD.showHUDAddedTo(self.view, animated: true);
我在一个新项目中尝试过它并且它有效。
您也可以尝试将预编译的前缀头文件 (.pch) 添加到您的项目中。您会在 File/New/Other 下找到它,添加 #import <UIKit/UIKit.h>
子句,然后在目标的构建设置中,在 Apple LLVM 7.0 - Language 下,将 Precompile Prefix Header 标志设置为 yes 并添加 .pch这样的文件 "YourProjectName/YourProject-Prefix.pch"。
另见 this answer。
我也遇到了同样的问题,这就是我在 swift 2
中使用 MBProgressHud 所做的1) 指定use_frameworks!在您的 Podfile 中使用框架。
2) 在桥接中添加#import header,使用尖括号而不是双引号,例如 -
#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);
希望对您有所帮助。