我有情况 如果有人对此有解决方案,我将不胜感激
enum
说Abc
MySwiftClass.swift
比如var abc : Abc!
mySwiftClass
在另一个ObjC类(myObjC.m文件)中创建了MySwiftClass()的实例mySwiftClass.abc
。这将引发错误-“在MySwiftClass *类型的对象上找不到属性'abc'。基本上,枚举不会作为属性添加到“ ProjectName-Swift.h”文件中。
我相信正在发生的事情是,当我在Swift类中声明ObjC枚举时,它已转换为Swift枚举,因此无法在ObjC文件中访问它。
注意:将Swift类标记为@objc无效。
Swift中的数字可选内容无法在Objective-C中表示,因此不会暴露于Objective-C。声明abc
不是可选的,应该可以从Objective-C获得。
考虑以下Objective-C枚举:
typedef NS_ENUM(NSInteger, Foo) {
FooBar,
FooBaz,
FooQux
};
然后考虑这个Swift 3类:
class SomeObject: NSObject {
var foo1: Foo = .bar // this is exposed to Objective-C
var foo2: Foo! = .bar // this is not
}
非可选的foo1
将会暴露给Objective-C,而可选的foo2
则不会。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句