[NSObject:AnyObject]?Xcode 6 beta 6中没有名为“下标”的成员错误
当屏幕上显示键盘时,我使用以下几行代码来获取键盘的框架。我已经注册了UIKeyboardDidShowNotification
通知。
func keyboardWasShown(notification: NSNotification) {
var info = notification.userInfo
var keyboardFrame: CGRect = info.objectForKey(UIKeyboardFrameEndUserInfoKey).CGRectValue()
}
这曾经在beta 5中起作用。我下载了最新的Xcode 6版本beta 6,此错误发生在第二行。
“ [NSObject:AnyObject]?” 没有名为“ objectForKey”的成员
经过一番谷歌搜索,我遇到了这个解决方案。我就这样改变了
var keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue()
但是现在看来这也已经过时了。因为我现在收到此错误。
“ [NSObject:AnyObject]?” 没有名为“下标”的成员
我无法弄清楚该错误或如何解决。
-
正如Xcode 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 }
-
在Xcode 6.1中。“ UIImage?” 没有名为“ size”的成员错误
2021-01-31 关注 0 浏览80 1答案
-
AnyObject在Xcode8 beta6中不起作用?
2021-01-31 关注 0 浏览71 1答案
-
“ PFObject”没有名为“下标”的成员
2021-01-31 关注 0 浏览45 1答案
-
“无法将'String'类型的值分配给'AnyObject吗?'”,Swift 3,Xcode 8 beta 6
2021-01-31 关注 0 浏览93 1答案
-
与Swift,XCode6-Beta的静态链接
2021-01-31 关注 0 浏览46 1答案
-
Xcode 8 Beta 6:main.swift无法编译
2021-01-31 关注 0 浏览71 1答案
-
只是缺少类变量支持,“ Class.Type”没有名为“ variable”的成员错误?
2021-01-31 关注 0 浏览68 1答案
-
由于奇怪的原因,Xcode Beta 6.1和Xcode 6 GM卡住了索引
2021-01-31 关注 0 浏览316 1答案
-
在Swift XCode beta 6中突然使编译器崩溃“ arrayForceCast”
2021-01-31 关注 0 浏览85 1答案
-
Django中的“没有名为简单的模块”错误
2021-02-02 关注 0 浏览127 1答案