2015-12-08 45 views
0

我已经看过了这些错误了一天的解决方案,现在,我不知道如何解决这些问题。下面的代码接收多个错误消息:预计“”分隔符和未解决的标识符

使用在线路未解决标识符NSCalendarUnitDay

的:

localNotification.repeatInterval = NSCalendarUnitDay 

和三个错误:

  • 预期”, '分隔符
  • 使用未解决的识别符 'sharedApplication'
  • 使用未解决的识别符的 'applicationBadgeNumber'

在行:

localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 

这是整个代码:

override func viewDidLoad() { 
    super.viewDidLoad() 


    var localNotification:UILocalNotification = UILocalNotification() 
    localNotification.fireDate = datePicker.date 
    localNotification.alertBody = nil; 
    localNotification.alertAction = nil; 
    localNotification.repeatInterval = NSCalendarUnitDay 

    //Add one to the icon badge number 

    localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 


    UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
+0

好了,代码仍然是一半的Objective-C。 – Sulthan

+0

从Objective-C代码复制&粘贴[[UIApplication sharedApplication] applicationIconBadgeNumber]'? – DevAndArtist

+0

任何想法如何我可以重写它,或者我可以读到它是如何完成的? – Gjeruldsen

回答

2

这是非常基本的。您可以将代码更改为:

override func viewDidLoad() { 
    super.viewDidLoad() 

    var localNotification:UILocalNotification = UILocalNotification() 
    localNotification.fireDate = datePicker.date 
    localNotification.alertBody = nil; 
    localNotification.alertAction = nil; 
    localNotification.repeatInterval = NSCalendarUnit.Day 

    //Add one to the icon badge number 

    localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1; 


    UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 

} 
1

发生这种情况是因为您尝试在Swift中执行Objective-C代码。

只需更换该行以

localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 

当你看到这样的事情[ClassName classMethod]或本*variable或类似的东西它是Objective-C的。而[]意味着你发送消息给对象。在斯威夫特只需调用方法与()ClassName.classMethod()