Enums 如何强制UIViewAnimationCurve枚举中的原始值为7?

Enums 如何强制UIViewAnimationCurve枚举中的原始值为7?,enums,swift,uiviewanimation,uiviewanimation-curve,Enums,Swift,Uiviewanimation,Uiviewanimation Curve,UIKeyboard的userInfo字典中的键将显示通知包含值为7的Int 现在我需要将这个Int传递到UIView.setAnimationCurve()。我试图像这样创建所需的UIViewAnimationCurve枚举UIViewAnimationCurve(rawValue:7)。由于原始值7未记录,因此结果总是nil 在Objective-C中,它以这种方式工作得很好。您知道如何使用Swift将此动画曲线从通知中获取到UIView动画吗 更新: 正如Martin所指出的,自从Xco

UIKeyboard的userInfo字典中的键将显示通知
包含值为
7
Int

现在我需要将这个
Int
传递到
UIView.setAnimationCurve()
。我试图像这样创建所需的UIViewAnimationCurve枚举
UIViewAnimationCurve(rawValue:7)
。由于原始值
7
未记录,因此结果总是
nil

在Objective-C中,它以这种方式工作得很好。您知道如何使用Swift将此动画曲线从通知中获取到UIView动画吗


更新: 正如Martin所指出的,自从Xcode 6.3以来,这不再是一个问题

从:

导入的带有未记录值的
NS_ENUM
类型,例如
uiviewmanimationcurve
,现在可以使用
init(rawValue:)
初始值设定项从原始整数值转换而来,而无需重置为
nil
。使用unsafeBitCast作为解决此问题的方法的代码可以编写为使用原始值初始值设定项


我想我知道了,但我不确定这是不是应该这样做

let animationCurve = unsafeBitCast(7, UIViewAnimationCurve.self)
UIView.setAnimationCurve(animationCurve)

更新:本文档中包含的解决方案也可以使用

var animationCurve = UIViewAnimationCurve.EaseInOut
NSNumber(integer: 7).getValue(&animationCurve)

请注意,正如Xcode 6.3发行说明中所记录的,Swift 1.2中不再存在此问题。