升级到Swift 3时使用未声明的类型

斯蒂

我正在使用Swift 2.3制作一个大型iOS项目,该项目正在使用一些私有的CocoaPods(v。1.1.1)。在其中一个pod(由Objective-C制造)中,有一个名为的文件Enums.h该文件包含以下代码:

typedef NS_ENUM(NSInteger, MyEnum){
    MyEnumOne,
    MyEnumTwo
};

在我的应用程序(Swift 2.3)中,我为诸如此类的枚举实现了几个扩展。例如这个例子:

extension MyEnum{
    func name()->String{
        return "some name"
    }
}

显然,这只是实际情况的一个小例子,但是您明白了。

我现在试图将我的项目升级到Swift 3.0,并使用Xcode自己的转换。我的代码现在到处都是错误,但这是预料之中的。但是,我不知道如何解决此错误:

Xcode现在extension MyEnum{用红色错误标记扩展文件的第一行,并说Use of undeclared type 'MyEnum'如果我用CMD +单击名称MyEnum,则会直接指向cocoapod内的枚举,确切地说是在声明的位置。.为什么Xcode告诉我它未声明?在Swift 2.3中,这工作得很好。

当我更新了Swift版本并尝试更新Pod时,cocoapods抱怨我的podfile没有说use_frameworks!,所以我加进去了。这会引起错误吗?

编辑:即使在name()扩展文件-function内部(现在显示“使用未声明的类型”),我也可以开始键入self.并获得自动完成窗口的声明,self声明是的实例MyEnum,并且它向我显示正确的值我可以使用例如rawValueXcode清楚地知道我的Enum,但仍然说Use of undeclared type 'MyEnum'

redent84

使用CocoaPods 1.0+,框架被编译为动态框架,必须导入才能使用。

尝试import在您的Swift文件中添加一条语句。例如,如果CocoaPod被命名为MyModule

在Swift中:

import MyModule

或在Objective-C中

@import MyModule;

在扩展文件的顶部。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Swift中使用未声明的类型'UIImage'

在Swift中导入Swift框架:“使用未声明的类型'MyCustomView'”

在Swift中对我自己的ViewController进行单元测试时,使用未声明的类型'ViewController'吗?

为什么在Swift中发生“使用未声明类型的UITableView”?

Swift 2.0使用未声明类型的UIColor

使用Xcode 7和Swift 2编写项目时升级到Xcode 7.1是否安全?

Swift:错误:使用未声明的类型'T'

命令由于信号失败:分段错误:升级到Xcode 8和Swift 3后为11

在Swift 3中使用未声明的类型

将Asterisk升级到14时出错-未声明PJSIP

尝试在Swift App中导入MoPub库时出错(错误:使用未声明的类型)

在Swift 3中使用未声明的类型“ Decodable” /“ Codable”

将Swift 3升级到4,不再在目标C中进行Swift扩展

升级到Python3-C数据类型

将Pod文件升级到新的Swift版本时出错

使用POI从.xls升级到.xlsx

升级到角度1.2.22时出错

使用未声明类型的tableViewCell Swift

升级到python 3.x

如何升级到GCM 3

使用未声明类型的'RoboViewController'Swift

使用未声明的类型'MFMessageComposeViewControllerDelegate swift'

升级到swift3时,出现错误“无法覆盖GKEntity类型的属性”

升级到Swift 3后UITableView坏了

从Swift 2.2升级到Swift 3.0后,继续使用`continue`

NSMultipleValuesMarker在Swift 3中使用未声明的类型

明确指定类型“ NSURL?” 升级到Swift 3时出现问题

升级到 Ubuntu 18.04 时出错

从 smarty 2 升级到 3 意外的“|”