iOS <unknown header '/Users/app/Desktop/WiseAppawo/WiseAppVTwo/WiseAppVTwo-Bridging-Header.h' does
来源:互联网 发布:网络猫有什么用处 编辑:程序博客网 时间:2024/06/03 18:03
我想开始我的Objective-C的项目中使用斯威夫特。所以我加了一个迅速类:
import Foundation@objc class System : NSObject { @objc func printSome() { println("Print line System"); }}
并将其导入一个.m文件:
#import "MyProjectName-Swift.h"
当建设项目中,我得到以下错误:
Bridging header 'PathToMyProject/MyProjectName-Bridging-Header.h' does not exist
注:在“建立设置 - >雨燕编译器 - 代码发生 - > Objective-C的Briding页眉”设置为MyProjectName桥接,Header.h
我应该怎么做来解决这个问题?
任何帮助深表感谢。
编辑:桥接头文件:#如果定义(__ has_include)&& __has_include()#包括#ENDIF
#include <objc/NSObject.h>#include <stdint.h>#include <stddef.h>#include <stdbool.h>#if defined(__has_include) && __has_include(<uchar.h>)# include <uchar.h>#elif __cplusplus < 201103Ltypedef uint_least16_t char16_t;typedef uint_least32_t char32_t;#endif#if !defined(SWIFT_PASTE)# define SWIFT_PASTE_HELPER(x, y) x##y# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)#endif#if !defined(SWIFT_METATYPE)# define SWIFT_METATYPE(X) Class#endif#if defined(__has_attribute) && __has_attribute(objc_runtime_name)# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))#else# define SWIFT_RUNTIME_NAME(X)#endif#if !defined(SWIFT_CLASS_EXTRA)# define SWIFT_CLASS_EXTRA#endif#if !defined(SWIFT_PROTOCOL_EXTRA)# define SWIFT_PROTOCOL_EXTRA#endif#if !defined(SWIFT_CLASS)# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA# else# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA# endif#endif#if !defined(SWIFT_PROTOCOL)# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA#endif#if !defined(SWIFT_EXTENSION)# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)#endif#if !defined(OBJC_DESIGNATED_INITIALIZER)# if defined(__has_attribute) && __has_attribute(objc_designated_initializer)# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))# else# define OBJC_DESIGNATED_INITIALIZER# endif#endif#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"#if defined(__has_feature) && __has_feature(modules)#endif#pragma clang diagnostic pop
8回答
如果在相同的水平的其他类创建桥接文件,则可能需要添加的相对路径,因为这些图片显示。这里注意,桥接文件是在相同的水平的其他类中创建:
我在生成设置输入正确的名称,
但是编译器未找到该文件。
所以,如果我添加从项目的根目录的相对路径(即我加./ProjectName/BridgerFileName.h
)
现在它编译,我可以在我的目标C类调用一个方法:
我发现手动创建桥接头文件,并选择默认的名称和位置之后,桥接头将被放置在项目目录,这是根目录下。
这需要设置以下值:目标> [您的应用目标]>构建设置>斯威夫特编译器-代码生成> Objective-C的桥接报头:
$(SRCROOT)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h
请注意,如果你的项目是一个迅速模块(框架),那么,在评论中指出,你可能更喜欢:
$(SRCROOT)/$(PROJECT_NAME)/$(SWIFT_MODULE_NAME)-Bridging-Header.h
$(SRCROOT)/$(PROJECT_NAME)/$(SWIFT_MODULE_NAME)-Bridging-Header.h
将更加普遍:) - gaussblurinc 4月29日在'15十五点44分对于那些谁删除的桥接报头
我本来打算以相反的方式,因为大多数这里的其他答案。我一直在使用一个桥接报头前面,但我并不需要它了。之后,我从我的项目中删除它,我开始变得在问题中提到的错误。我执行以下步骤来解决我的问题。
- 转到目标> [您的应用目标]>构建设置>斯威夫特编译器-代码生成> Objective-C的桥接报头,并删除路径。(感谢@Donamite为理念。)
- 转到窗口>项 目并删除导出数据文件夹。
对我来说,它帮助我在桥接的头文件路径前面使用$(SRCROOT)/ $(PROJECT_NAME)/
创建桥接报头手动档
首先,删除其中的Xcode创建桥接头文件。并选择您的项目转到>构建设置>搜索关键字。斯威夫特编译器 - 代码生成。点击Objective-C的桥接报头,删除该路径。现在,清理项目。
现在选择项目>窗口中的导航栏。选择项目并从那里删除您导出数据。
现在创建一个新的文件,选择来源,然后选择头文件并创建桥接头文件。文件名 必须是你的项目名-桥接- Header.h,然后创建它
选择您的项目转到>构建设置>搜索关键字。斯威夫特编译器-代码生成。点击Objective-C的桥接报头,现在加入这个Objective-C的桥接报头的路径类似项目名称,桥接,Header.h
现在导入您的类放到桥的头文件,你可以很容易地编译代码。
您桥接头文件看起来是这样的,当你手动创建文件。
在斯威夫特项目添加桥文件。
步骤1.转到文件>使用Objective-C文件添加可可(对于临时用途)
步骤2然后将下面的弹出会出现
- iOS <unknown header '/Users/app/Desktop/WiseAppawo/WiseAppVTwo/WiseAppVTwo-Bridging-Header.h' does
- Swift Cocoapods use_frameworks!(报error Bridging header 'XXXXXX-Bridging-Header.h' does not exist 错误)
- Swift、OC混编用到的Bridging-Header.h
- xxx-Bridging-Header.h找不到CocoaPods管理的第三方库.h文件
- iOS - 关于header.h和pch
- Umbrella Header for Module Bolts does not include header 'XXXXXX.h'?
- 编译报错:***-Bridging-Header.h' (No such file or directory)
- Swift桥接OC Objective-OC Bridging Header
- xcrun: error: active developer path ("/Users/apple/Desktop/Xcode5.app/Contents/Developer") does not
- header
- header
- header
- header
- Header();
- header
- header
- header
- swift3.0项目Cocoapods导入的库头文件在Bridging-Header.h中导入报错
- 百度地图,模拟器报错No config chosen解决
- 单例模式(Singleton)-设计模式(五)
- Ruby
- 实现一键加入QQ群
- [345]Reverse Vowels of a String
- iOS <unknown header '/Users/app/Desktop/WiseAppawo/WiseAppVTwo/WiseAppVTwo-Bridging-Header.h' does
- Compass
- iOS-CADisplayLink详解以及与NSTimer对比
- 前端问题整理
- list和tuple
- iOS 视频图片压缩上传
- js中两个小括号的用法
- 根据输入时间间隔判断EditText是否输入完成
- Javascript 自制range函数实现
MyProjectName-Swift.h
而MyProjectName-Bridging-Header.h
在相反的方向。工作MyProjectName-Swift.h
时自动提供。MyProjectName-Bridging-Header.h
然而,半自动提供,即你必须确保它的存在。所以,你确定,你可以看到MyProjectName-Bridging-Header.h
在你的项目导航?如果没有,创建并添加一个文件使用该名称到您的项目。然后再次检查,在生成设置的路径是正确的(它应该包括项目目录:MyProjectName/MyProjectName-Bridging-Header.h
。 - 米洛斯 9月29日在'14 9:53