【发布时间】:2016-04-08 10:28:45
【问题描述】:
下面是我在 Swift 中声明 enum 的方式。我在一个类中有一个enum 类型的属性。但我无法从 Objective-C 访问此属性。有什么解决方法吗?我完全在 Swift 上编写了我的应用程序。我现在正在集成完全基于 Objective-C 的第三方 SDK。我需要 Objective-C 中这个 enum 属性的值。
@objc public enum PaymentType: NSInteger {
case COD
case NB
case CARDS
case PAYTM
case CITRUS
}
var modeOfPayment: PaymentType?
当我试图在 Objective-C 中访问这个属性时,它说
找不到属性 modeOfPayment
NSLog(@"%d",[Helper sharedInstance].order.modeOfPayment);
【问题讨论】:
-
可能问题是由选项引起的?在 objc 中,枚举不能是可选的。
-
显示完整的属性声明;该代码片段不足以发现潜在问题。
-
枚举应该是非可选的,因为它们的案例数量是不变的。您可以为
nil等效项添加 NONE 案例。可选类型不暴露给 ObjC。 -
@Cy-4AH:你说得对。我设置了一个默认值,然后它就可以访问了: var modeOfPayment: PaymentType = PaymentType.COD;
标签: objective-c enums swift2