[英]How to box int (enum) to object in swift?
我需要将一个int转换为一个对象,在Objective-C中我可以执行以下操作
[row.cellConfig setObject:@(UITextFieldViewModeAlways) forKey:@"textField.rightViewMode"];
什么是Swift等价物?
UITextFieldViewModeAlways
的Swift等价物是UITextFieldViewMode.Always
,它是一个枚举值:
enum UITextFieldViewMode : Int {
case Never
case WhileEditing
case UnlessEditing
case Always
}
您可以使用.rawValue
获取其基础整数值。 当传递给采用Objective-C参数的函数(以及桥接到NSString
Swift字符串)时,整数会自动“桥接”到NSNumber
。
所以这应该工作:
row.cellConfig.setObject(UITextFieldViewMode.Always.rawValue,
forKey: "textField.rightViewMode")
有关更多信息,请参阅将Swift与Cocoa和Objective-C一起使用 。
采用
row.cellConfig.setObject(NSNumber(UITextFieldViewModeAlways), forKey:"textField.rightViewMode")
您需要为该int创建一个NSNumber对象。
NSNumber *intObj = [NSNumber numberWithInt:num];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.