2016-08-09 4 views
2

私は、新しい通知を回避するためのサンプルプロジェクトを使用しています。Swift 2.2からSwift 2.3に、またiOS 9からiOS 10に移行します。 this exampleiOS10への移行時にタイプUNNotificationCategoryのイニシャライザを呼び出せません

@available(iOS 10.0, *) 
func setupAndGenerateLocalNotification() { 
    // Register an Actionable Notification 
    let highFiveAction = UNNotificationAction(identifier: NotificationActions.HighFive.rawValue, title: "High Five", options: []) 

    //next line is an error: 
    let category = UNNotificationCategory(identifier: "wassup", actions: [highFiveAction], minimalActions: [highFiveAction], intentIdentifiers: [], options: [.customDismissAction]) 
    //Cannot invoke initializer for type 'UNNotificationCategory' with an argument list of type '(identifier: String, actions: _, minimalActions: _, intentIdentifiers: _, options: _)' 

    UNUserNotificationCenter.current().setNotificationCategories([category]) 

    let highFiveContent = UNMutableNotificationContent() 
    highFiveContent.title = "Wassup?" 
    highFiveContent.body = "Can I get a high five?" 

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) 

    let highFiveRequestIdentifier = "sampleRequest" 
    let highFiveRequest = UNNotificationRequest(identifier: highFiveRequestIdentifier, content: highFiveContent, trigger: trigger) 
    UNUserNotificationCenter.currentNotificationCenter().addNotificationRequest(highFiveRequest) { (error) in 
     // handle the error if needed 
     print(error) 
    } 
} 

私が手にエラーが

Cannot invoke initializer for type 'UNNotificationCategory' with an argument list of type '(identifier: String, actions: _, minimalActions: _, intentIdentifiers: _, options: _)' 

答えて

2

であるあなたは、あなたのエラーが何であったかは言及しなかったが、私は、あなたがコピーしたコードは、インストールされているよりも早くベータ版のために書かれた疑いがあります。

Swift 2.3ではなく、Swift 3を使用しています。 Xcode 8 Beta 5では、UNUserNotificationCenter.currentNotificationCenter().addNotificationRequestUNUserNotificationCenter.current().addに変更し、UNNotificationCategoryからminimalActions: [highFiveAction],を削除する必要があります。後者のみがSwift 2.3に適用される可能性はありますか?

iOS 10が最終的になる前に、これは再び変更される可能性があります。特に、私はcurrent()currentになるかもしれないと思う。

+0

ああ、申し訳ありませんが、コード内にエラーがあります(コメントアウト) –

+0

いいえ、私はswift 2.3を必要としており、それは私が使用しているコードです(実際にswift3の例をswift 2.3に戻すように修正しなければなりません) –

+0

Didあなたは私が言ったことをやってみる - 'minimalActions'パラメータを削除する? – TwoStraws

関連する問題