扩展目标 c 类报告“使用未声明的类型”

Posted

技术标签:

【中文标题】扩展目标 c 类报告“使用未声明的类型”【英文标题】:Extension on objective c class reports "use of undeclared type" 【发布时间】:2015-12-26 06:22:34 【问题描述】:

我正在尝试为“FMDatabase”编写扩展...一个客观的 c 类。

extension FMDatabase 



我在这个项目的其他 swift 代码中使用 FMDatabase 没有问题。然而,在这个快速扩展中,它会因“使用未声明的类型 FMDatabase”而导致编译失败。

【问题讨论】:

【参考方案1】:

FMDatabase 上进行 Swift 扩展没有问题。我已经做到了,没有发生任何事故。也许您在一个无法访问FMDatabase 的单独目标中执行此操作。或者您可能忽略了此目标的桥接头中的#import "FMDB.h"。此外,如果您只是添加了桥接头,有时在您编译之前它无法识别FMDatabase(或其他)。

如果您仍然遇到此问题,请概述我们重现问题所需的确切步骤(即请提供MCVE)。但我刚刚为FMDatabase 创建了一个Swift extension,它工作正常。

【讨论】:

我已经完成了你所建议的一切......奇怪的是 FMDatabase 正在其他 swift 类中工作......不知道为什么扩展会有所不同。我已经在这方面浪费了足够的时间,没有时间制作 MCVE。对我来说,它看起来像是一个快速的错误。但是谢谢 Rob,很高兴知道它应该可以工作。【参考方案2】:

据我所知,Swift 不适用于 Cocoapods,在安装和初始化方面存在一些问题。 为了您更好地阅读 FMDatabase “如何在 Swift 上安装”的文档

【讨论】:

以上是关于扩展目标 c 类报告“使用未声明的类型”的主要内容,如果未能解决你的问题,请参考以下文章

使用未声明的类型'对象'

使用未声明的类型“AttributedString”

UITextViewDelegate 方法在 Swift 3 和 Xcode 8.0 中给出“使用未声明的类型 URL”错误

在 Swift 中声明任何类型的数组时使用未声明的类型“T”

使用未声明类型的 UITextfield

Alamofire,使用未声明的类型