从indexPath中取消特定的UILocalNotification

时间:2016-06-07 02:58:01

标签: swift core-data nsuserdefaults nsfetchedresultscontroller uilocalnotification

我有一个基于tableView的应用Core Data。由于NSFetchedResultsController及其Delegate协议方法,每个单元格都是可删除的并且非常酷。但我希望在删除特定单元格时取消特定的UILocalNotification实例。 Core Data包含UILocalNotificationuserInfo的所有信息。我真的在这里停了下来。有人能告诉我吗?如果可能,或者我应该使用NSUserDefaults代替Core Data

这就是我所做的。它似乎运作正常,但我不知道它是否正确

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {


if editingStyle == .Delete {

            let delete = self.fetchedResultsController.objectAtIndexPath(indexPath) as? NSManagedObject
            let cell = tableView.cellForRowAtIndexPath(indexPath)

            for notification in UIApplication.sharedApplication().scheduledLocalNotifications! {
                if (notification.userInfo!["givenName"] as? String == cell?.textLabel?.text) {
                UIApplication.sharedApplication().cancelLocalNotification(notification)
                break
               }
            }
            self.managedObjectContext.deleteObject(delete!)  // Delete Action

            do {
            // Save Action
            try self.managedObjectContext.save()  // Save Action
            } catch { // An Error 
          }
        }
      }

由于

0 个答案:

没有答案