Swift:当通知被激活时,应用程序崩溃了

时间:2015-07-28 14:35:30

标签: ios iphone swift

我已注册通知:

  

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes:UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge,categories:nil))

在函数didReceiveLocalNotification中,当我从通知中获取日期对象时,应用程序崩溃。

M-x package-install RET bm

以下是崩溃日志:

  

异常类型:EXC_BREAKPOINT(SIGTRAP)异常代码:   0x0000000000000001,0x000000010008268c由线程触发:0

     

已过滤的系统日志:未找到

     

线程0名称:调度队列:com.apple.main-thread线程0   坠毁:0节0x000000010008268c   @objc verse.AppDelegate.application   (verse.AppDelegate)(ObjectiveC.UIApplication,   didReceiveLocalNotification:ObjectiveC.UILocalNotification) - > ()   (AppDelegate.swift:67)

我不知道它崩溃的原因。请帮帮我......

2 个答案:

答案 0 :(得分:0)

我认为fireDate更多地用于创建通知,以便它知道何时应该触发。您应该注意,由于某种原因,它是可选的,并且以任何一种方式设置nil都是完全有效的,因此应予以考虑。如果我们收到通知,我认为我们可以相对安全地假设我们在其发布日期或至少接近它时收到通知。由于您只关心月,日和年,只需使用NSDate()

即可
let dateString = dateFormatter.stringFromDate(NSDate())
NSNotificationCenter.defaultCenter().postNotificationName("RefreshVerseNotify", object: nil,userInfo:["date":dateString])

答案 1 :(得分:0)

感谢您的帮助。我已经通过使用userinfo解决了它。我在userinfo中设置了值并从userinfo

获取它
let date = notification.userInfo!["fdate"]as! String
NSNotificationCenter.defaultCenter().postNotificationName("RefreshVerseNotify", object: nil,userInfo:["date":date])