一意の識別子で通知をスケジュールするので、通知ごとに新しい文字列を作成する必要はありません。これはスケジューリングに適していますが、問題を取り消そうとしています。私はそれらをキャンセルしようとするとスケジュール通知の一意識別子Swift 3 iOS 10
これは、スケジュールの通知のための私のコードです...
let notifIdentifier = TaskManager.notification2.userInfo.description as String!
let trigger = UNCalendarNotificationTrigger(dateMatching: components , repeats: true)
let request = UNNotificationRequest(identifier: notifIdentifier! , content: TaskManager.notification2, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
これは、通知をキャンセルするためのコードですが...
// Deletion of Cells ...
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
let managedObject: NSManagedObject = frc.object(at: indexPath) as! NSManagedObject
context.delete(managedObject)
if tableView == TaskTableViews {
let itemController = TaskManager()
let nItem: List = frc.object(at: indexPath) as! List
itemController.nItem = nItem
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: [itemController.notifIdentifier!])
、彼らは非常にヒットされ、ミス。私は、識別子を通常のStringに変更することによってコードをテストしました。すべてが正常に動作するように動作します。
新しいタスク/通知ごとに一意のIDを作成すると思っていますか?
どうしたの? 「彼らは非常に打撃を受けています」とはどういう意味ですか?_問題が何であるか説明してください。とにかく、TaskManagerとは何ですか? – matt
一度に1つの通知のみをキャンセルできます(複数ではありません)。通知をスケジュールする場合は、アプリを閉じてから、後でタスクを削除するためにアプリを再度開くと、通知は取り消されません。私はこれがすべてStringで完璧に動作すると言ったように、一意のIDを使用することは私の問題です。私は、それぞれのタスクに固有のIDを作成する別の方法を探しています。 – Tai
"はすべてStringで完璧に動作しますが、ユニークなIDを使用することは私の問題です。"私はその意味も理解できません。識別子_は文字列なので、私はあなたが描いている区別を得られません。そしてあなたはあなたの識別子がどのように作成され、保存されているかを示していないので、あなたは何をしているのかを誰が知っていますか?これまでの質問は、少なくとも私には完全に不明です。 – matt