2016-04-16 105 views
1

我使用的是在Core Data中存儲一些數據的iOS應用程序。當我不得不從Core Data中刪除特定數據時,我發現了一個問題。從核心數據中刪除

儘管它表示刪除是成功的,但存儲的元素數量是相同的。

你可以看一下嗎?

下面的代碼:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let managedContext = appDelegate.managedObjectContext 
    let fetchRequest = NSFetchRequest(entityName: "Session") 
    fetchRequest.returnsObjectsAsFaults = false 

    do 
    { 
     var session = try managedContext.executeFetchRequest(fetchRequest) as! [Session] 

      managedContext.deleteObject(session.first!) 
     if session.first!.deleted { 
      print("Succesfully deleted") 
      print(session.count) 
     } 
     else { 
      print("Unsuccesfull") 
     } 


    } catch { 
      print("Detele error : \(error)") 
    } 
+0

您需要保存上下文 - 如果取出的數組爲空你的代碼將崩潰可靠(在'做 - catch'表達不趕上)。 – vadian

回答

0

正如@Vadian說,你忘了保存上下文。

所以我們實現它:

do { 
    try managedContext.save() 
} catch let error as NSError { 
    print(error) 
} 
+0

實際上'save'行也可以放在現有的'do'塊中。 – vadian

+0

啊,我忘了保存,現在它工作..謝謝! –

+0

感恩節當你向上或者/或者將答案標記爲正確時,感恩節會更加愉快;) – heximal