ios - 使用 UILocalNotification 从核心数据中删除数据

标签 ios swift xcode core-data uilocalnotification

我正在尝试在触发本地通知时从代码数据模型中删除数据。所以我得到通知的 alertbody ,然后使用通知标题获取排序数据:

 func application(application: UIApplication, handleActionWithIdentifier identifier: String?,
                     forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {


        if identifier == "deleteEvent" {

            context = CoreDataStack.managedObjectContext

            do {

                request =  NSFetchRequest(entityName: "Event")
                let titlePredicate = NSPredicate(format: "title CONTAINS[c] %@" ,notification.alertBody!)

                request.predicate = titlePredicate
                results = try context.executeFetchRequest(request)

                print(results.count) // returns 1



            } catch {

                print("ERROR")
            }

                do {

                    results.removeAtIndex(0)
                    CoreDataStack.saveContext()

                    NSNotificationCenter.defaultCenter().postNotificationName("reloadTableView", object: nil)
                    print(results.count) // returns 0

            }


        }

        completionHandler()
    }

例如,当我从模型中删除数据并转到事件 View Controller 时,我仍然可以看到数据在那里!我错过了什么吗?!谢谢。

最佳答案

results 数组中删除一个元素(使用removeAtIndex)不会将其从持久存储中删除,甚至不会从上下文中删除。您需要告诉上下文删除对象:

let object = results[0] as! NSManagedObject
context.deleteObject(object)

关于ios - 使用 UILocalNotification 从核心数据中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633064/

相关文章:

ios - 使用 NSFetchedResultsController 执行搜索

ios - UICollectionView 是否随着 Xcode 7、swift 2.0 更改了协议(protocol)?

ios - iOS 上打开文件的最大数量

arrays - SourceKit 在创建 2D 字符数组时崩溃

ios - 如何防止imageView在ContainerView中的navigationBar下延伸

ios - xcode 6.1 (Swift) 中的 SIGABRT 运行时错误

ios - 是否可以强制设备的日期测试本地通知?

swift - 如何在不标记文件的情况下使用 Swift 以编程方式在 macOS 中添加 Finder 标签?

ios - AppDelegate.swift 函数在转换为 swift 3 后返回错误(无法转换为 PFBooleanResultBlock?)?

xcode - Xcode是否具有代码导航功能?