正如Xpre 6 beta 6发行说明中提到的那样,已经对大量FoundationAPI进行了审核,以了解可选的一致性。这些更改分别
T!用
T?或替换,或者分别
T取决于该值是否可以为null。
notification.userInfo现在是 可选 词典:
class NSNotification : NSObject, NSCopying, NSCoding { // ... var userInfo: [NSObject : AnyObject]? { get } // ...}所以你必须拆开它。如果你 知道 那
userInfo是不是
nil,那么你可以简单地使用“强制展开”:
var info = notification.userInfo!
但请注意,如果
userInfo为,则会在运行时崩溃
nil。
否则最好使用可选的分配:
if let info = notification.userInfo { var keyboardframe: CGRect = (info[UIKeyboardframeEndUserInfoKey] as! NSValue).CGRectValue()} else { // no userInfo dictionary present}

![[NSObject:AnyObject]?Xcode 6 beta 6中没有名为“下标”的成员错误 [NSObject:AnyObject]?Xcode 6 beta 6中没有名为“下标”的成员错误](http://www.mshxw.com/aiimages/31/370180.png)
