고유 식별자로 알림을 예약하므로 각 알림에 대해 새 문자열을 만들 필요가 없습니다. 이것은 모두 스케줄링에 적합하지만 문제점은이를 취소하려는 것입니다. 이것은 취소 통지에 대한 코드입니다일정 알림을위한 고유 식별자, 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
한 번에 하나의 알림 만 취소 할 수 있습니다 (다중이 아님). 알림 일정을 잡으면 앱을 닫고 나중에 앱을 다시 열어서 작업을 삭제하면 알림이 취소되지 않습니다. 내가 말했듯이이 모든 것은 String과 완벽하게 작동하지만 고유 한 ID를 사용하는 것이 내 문제이다. 임씨는 각 작업마다 고유 한 ID를 만드는 또 다른 방법을 찾고 있습니다. – Tai
"모두 String과 완벽하게 작동하지만 고유 ID를 사용하는 것이 내 문제입니다."나는 그 중 무엇을 의미하는지 파악할 수 없습니다. 식별자는 _ 문자열이므로, 당신이 구별하고있는 구별점을 얻지 못합니다. 그리고 당신은 당신의 식별자가 어떻게 생성되고 저장되었는지를 보여주지 않았으므로, 당신이하고있는 일을 누가 알 수 있습니까? 지금까지의 전체 질문은 (적어도 나에게) 완전히 불분명하다. – matt