XCode6 beta 6 Swift 编译器错误
Posted
技术标签:
【中文标题】XCode6 beta 6 Swift 编译器错误【英文标题】:XCode6 beta 6 Swift Compiler Error 【发布时间】:2014-08-21 21:58:07 【问题描述】:我开始观看用户 Brian Advent 的 YouTube Swift 教程,特别是关于使用 Parse https://www.youtube.com/watch?v=__zMnlsfwj4 的远程推送通知的教程。 下载示例应用程序并在 Xcode 6 beta 6 上打开后,编译器在以下代码中显示一个错误:
func application(application: UIApplication!, didReceiveRemoteNotification userInfo:NSDictionary!)
var notification:NSDictionary = userInfo.objectForKey("aps") as NSDictionary
if (notification.objectForKey("content-available") != nil)
if notification.objectForKey("content-available").isEqualToNumber(1)
NSNotificationCenter.defaultCenter().postNotificationName("reloadTimeline", object: nil)
else
PFPush.handlePush(userInfo)
错误在 AppDelegate.swift 的下面这一行
if notification.objectForKey("content-available").isEqualToNumber(1)
显示的消息是 'AnyObject?'没有名为“isEqualToNumber”的成员
关于如何解决这个问题的任何提示/帮助?我会很感激的
【问题讨论】:
【参考方案1】:objectForKey()
返回一个可选 AnyObject?
,所以你必须解包
用!
明确表示:
if notification.objectForKey("content-available")!.isEqualToNumber(1) ...
或者,使用可选赋值。如果与可选演员 (as?
) 结合使用,您可以
甚至使用 NSNumber
自动桥接到本机数字类型这一事实:
if let contentAvailable = notification.objectForKey("content-available") as? NSNumber
if contentAvailable == 1
// ...
else
// ...
【讨论】:
你能看看下面我尝试修复上面第一个错误的新错误吗以上是关于XCode6 beta 6 Swift 编译器错误的主要内容,如果未能解决你的问题,请参考以下文章
XCode6 Beta 中的编译器警告 - “速记外部参数名称”
使用 Xcode6-Beta 运行 Xcode 5.1.1 项目
Xcode6-Beta3 更新后,无法使用 Swift 访问键盘信息