Jul*_*ien 1 xcode header objective-c fmdb swift
在此先感谢您为我提供的帮助。
我现在已经昨天,两小时搜索这半天在互联网上,我还没有发现任何东西(超过这两个环节没有帮助使用路由我库时FMDatabase.h没有发现与未能发出预编译头用于桥接标题)
所以这是我的问题:我只有一个以前的开发人员一直在从事的项目,而当我尝试启动它时,这里有两个错误:
未能发出预编译的标头'/Users/me/Library/Developer/Xcode/DerivedData/Alavoc-arfzuirebtfstncdztyvgvtpcbgw/Build/Intermediates.noindex/PrecompiledHeaders/Alavoc-Bridging-Header-swift_1I75NH5N40X40XPS4_PS_clang_User's。我/下载/Alavoc-ios-master/Alavoc/bridge/Alavoc-Bridging-Header.h'
/Users/me/Downloads/Alavoc-ios-master/Alavoc/externalLib/customClass/customClassViewController.h:13:9:错误:找不到“ FMDB / FMDB.h”文件
还有一个这样写的致命错误(即使我只计算了两个错误,这个错误也出现在日志中,上面提到的另外两个错误上方)
致命错误:模块文件'/Users/me/Library/Developer/Xcode/DerivedData/ModuleCache/30E4RG2TSVLXF/Foundation-3DFYNEBRQSXST.pcm'已过期,需要重新构建:签名不符说明:由'/ Users / me导入/Library/Developer/Xcode/DerivedData/Alavoc-arfzuirebtfstncdztyvgvtpcbgw/Build/Intermediates.noindex/PrecompiledHeaders/Alavoc-Bridging-Header-swift_1I75NH5N40QPS-cvoc_30E4RG2TSVLXF/A/S/User/A桥/用户/ A桥/用户/ A桥/用户/ A桥/用户/ AWS / A桥/用户/ AWS / A桥/用户/ AOS / A桥/用户/ A桥/用户/ A桥/用户/ Alavoc-Bridging-Header.h:13:9:注意:在/Users/me/Downloads/Alavoc-ios-master/Alavoc/bridge/Alavoc-Bridging-Header.h:13中的文件中:#import“ customClassViewController。 H”
customClassViewController.h第13行:
#import <FMDB/FMDB.h>
Run Code Online (Sandbox Code Playgroud)
我猜这些错误是关联的。您是否知道它可能来自哪里?
在此先感谢您的帮助,我非常感谢!
编辑battlmonster(新错误):
这是两个错误(未找到文件(在Alavoc-Bridging-Header.h FMDB.h中未找到))并且未能发出预编译的头文件:
致命错误:由于预编译头文件'/ Users / me / Library / Developer / Xcode / DerivedData,文件'/Users/me/Downloads/Alavoc-ios-master/Alavoc/bridge/Alavoc-Bridging-Header.h'已被修改/Alavoc-arfzuirebtfstncdztyvgvtpcbgw/Build/Intermediates.noindex/PrecompiledHeaders/Alavoc-Bridging-Header-swift_1I75NH5N40QPS-clang_30E4RG2TSVLXF。 /Build/Intermediates.noindex/PrecompiledHeaders/Alavoc-Bridging-Header-swift_1I75NH5N40QPS-clang_30E4RG2TSVLXF.pch'/Users/me/Downloads/Alavoc-ios-master/Alavoc/bridge/Alavoc-Bridging-Header.h:29:9:错误:找不到“ FMDB / FMDB.h”文件
进口
Run Code Online (Sandbox Code Playgroud)^ 1 error generated. <unknown>:0: error: failed to emit precompiled header'/Users/me/Library/Developer/Xcode/DerivedData/Alavoc-arfzuirebtfstncdztyvgvtpcbgw/Build/Intermediates.noindex/PrecompiledHeaders/Alavoc-Bridging-Header-swift_1I75NH5N40QPS-clang_30E4gingsd/User's''。 -ios-master / Alavoc / bridge / Alavoc-Bridging-Header.h'
此错误与桥接头格式错误有关。桥接头文件是一个特殊的头文件,其中列出了所有Objective-C头文件,这些文件的类必须从Swift代码中可以访问。所有桥接标头定义均已预编译,可以从Swift中使用。在您的情况下,桥接标头是“ Alavoc / bridge / Alavoc-Bridging-Header.h”,并且其中包含customClassViewController.h的标头(来自Alavoc / externalLib / customClass),该标头表明您的开发人员都希望可以访问customClassViewController在Swift代码中。
现在,关于桥接标头的困惑之处在于,它没有递归地包含所有内容,即,它只是在定义的第一级上查找,如果您在Swift中导入想要导入的内容,则必须将其添加到桥接中标头,否则您可能会收到警告(或有时会出错)。假设您#import "A.h"在桥接头中,并且#import "B.h"在“ Ah”内部,那么您可能还必须在桥接头中添加“ Bh”。
现在在您的示例A = customClassViewController和B = FMDB中,通常您需要将FMDB添加到桥接头中,但事实是您很可能不希望通过桥接头将FMDB导出到Swift。并非为此目的(它是针对您自己的objc代码,而不是针对第三方库的)。
解决方法是从“ customClassViewController.h”中删除第13行。这可能会修复桥接头的编译,但可能会破坏customClassViewController,因此您需要在“ customClassViewController.m”中包含FMDB,并且很可能使“ customClassViewController.h”适应于与FMDB不相关的内容(或向前声明这些内容)。的用法@class X;)。
如果移至#import <FMDB/FMDB.h>实现(.m)文件并仍然获取error: 'FMDB/FMDB.h' file not found,则可能是FMDB路径未在标题搜索路径中列出。
要解决最后一个问题,只需在Xcode构建设置的“标题搜索路径”中包含正确的路径。假设FMDB位于/ Users / me / Downloads / Alavoc-ios-master / Alavoc / ASDASD / FMDB(并且您有/Users/me/Downloads/Alavoc-ios-master/Alavoc/ASDASD/FMDB/FMDB.h ),然后您需要打开Xcode项目设置-在左侧选择目标-在顶部选择“构建设置”-找到“标题搜索路径”设置并添加/ Users / me / Downloads / Alavoc-ios-master / Alavoc / ASDASD路径
| 归档时间: |
|
| 查看次数: |
4169 次 |
| 最近记录: |