我有一个像这样在我的objective-c 头文件中声明的枚举:

typedef NS_ENUM(NSInteger, FontSize) {
    VerySmall = 12,
    Small = 14,
    Medium = 16,
    Big = 18
};

然后在我的桥接头中我导入这个 header 。

从我的 swift 代码中,当我尝试将“FontSize”声明为参数时,编译器会说“使用未声明的类型 FontSize”。

从开发人员指南来看,这应该是可能的。有人遇到同样的问题吗?

最佳答案

从一个干净的 Swift 项目重新开始,添加一个 .h 文件(接受桥接头的自动创建)

Objective-C FontSize.h

typedef NS_ENUM(NSInteger, FontSize) {
    VerySmall = 12,
    Small = 14,
    Medium = 16,
    Big = 18
};

桥接头
#import "FontSize.h"

Swift 实现
import UIKit
class ViewController: UIViewController {
    let fontSize:FontSize = .VerySmall
}

在 Xcode 6.4 和 7.0 上构建、链接、运行和测试。

关于Objective-C 枚举在 Swift 中不可见,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31795759/

10-12 14:33