2014-10-29 55 views
-1

字典不能识别密钥类型(更新)

func keyboardWillShow(aNotification: NSNotification) { 
     //Collect information about keyboard using its notification. 
     let info = aNotification.userInfo 
     let duration = (info[UIKeyboardAnimationDurationUserInfoKey] as NSValue) as Double 
     let curve : AnyObject? = info[UIKeyboardAnimationCurveUserInfoKey] 
     let kbFrame : AnyObject? = (info[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue().size 
} 

我怎样才能得到这些应不

“[NSObject的:AnyObject]读?没有一个成员命名'下标'“错误?

在xCode的测试版中,它已经工作,但是从xCode 6.1它不再正常工作。

回答

1

userInfo是可选的Dictionary,因此您可以使用可选的绑定来展开值。 CGSize是一个结构体,而不是一个对象,因此将AnyObject改为CGSize。

if let info = aNotification.userInfo { 
    let duration = (info[UIKeyboardAnimationDurationUserInfoKey] as NSValue) as Double 
    let curve : AnyObject? = info[UIKeyboardAnimationCurveUserInfoKey] 
    let kbFrame: CGSize = (info[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue().size 
}