2016-04-16 24 views
1

私はコアデータにいくつかのデータを保存するiOSアプリケーションアプリケーションで動作します。私はコアデータから特定のデータを削除しなければならないときに問題を発見しました。コアデータから削除

削除が成功したと言いますが、格納される要素の数は同じです。

ご覧になれますか? @Vadianが言ったように

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

は、あなたがコンテキストを保存するのを忘れ:

は、ここでは、コードです。

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

実際には 'save'行を既存の' do'ブロックに入れることもできます。 – vadian

+0

ああ、私は貯蓄を忘れていた、今それは動作します..ありがとう! –

+0

アップグレートしたり、答えを正しいとマークすると、感謝祭がもっと楽しくなります。 – heximal

関連する問題