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