我有一个在Objective-C中定义的协议。它有一个枚举属性。
我想创建一个实现该协议的Swift类,并且希望Swift类的枚举字段是可选的。
我无法使用nullable
注释来标记枚举类型。
如何解决这个问题?
我有一个在Objective-C中定义的协议。它有一个枚举属性。
我想创建一个实现该协议的Swift类,并且希望Swift类的枚举字段是可选的。
我无法使用nullable
注释来标记枚举类型。
如何解决这个问题?
在Objective-C中,枚举类型永远不会为nil
,因为它们默认为0
,并且它们不是引用类型。
因此,在Swift中,您无法同时使属性从不为nil
实现协议并使其可选(例如可为空)。
如果您需要该属性有时可为空,则可能需要重新设计架构(例如协议层次结构),以使其成为可选的。
func mySwiftMethod(firstParameter: String, enumParameter: MyEnum = MyEnumDefaultValue)
这样,Swift 调用可以将参数替换为默认值,您无需包含它。但是,该值不能为 nil,因为枚举实际上是一个 NSInteger
值。
希望这能帮助到您 :)