我有一个像这样在我的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/