2016-05-06 7 views
0

サーバーからデータを取得して、すべてのデータをコアデータに保存します。 しかし、私はそれを保存すると、複数のコピー(重複データ)を作成します。コアデータのデータを上書きする方法は?コアデータの重複データをどのように解決するか?

私の質問は以下のとおりです。コアデータ内の重複データを処理するための方法

  1. CoreDataのSwiftを使用してオーバーライドデータを保存するにはどうすればよいですか?

+0

Hi Dim San Cing!スタックオーバーフローへようこそ。何を試しましたか?どのようなエラーが出ますか?あなたの問題をもう少し説明してください、あなたが試したこととどのプラットフォームで、正確に答えるより良い機会がありますか。 –

答えて

0

を更新するアレイ

にストアオブジェを持っている、あなたはからすべてのレコードを削除することができますコアデータにすべてのレコードを保存することができます。

コアデータからすべてのレコードを削除する機能です。コアデータにレコードを保存する前にこの関数を呼び出すことができます。

func deleteEverything() 
{ 
    let appDel = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context = appDel.managedObjectContext 
    let coord = appDel.persistentStoreCoordinator 

    let fetchRequest = NSFetchRequest(entityName: "Categorytbl") // Your entity name 
    if #available(iOS 9.0, *) 
    { 
     let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) 
     do 
     { 
      try coord.executeRequest(deleteRequest, withContext: context) 
     } 
     catch let error as NSError 
     { 
      debugPrint(error) 
     } 
    } 
    else 
    { 
     // Fallback on earlier versions 
     do{ 
      let fetchedObjects : NSArray = try context.executeFetchRequest(fetchRequest) 
      if(fetchedObjects.count > 0) 
      { 
       for currObj in fetchedObjects 
       { 
        context.deleteObject(currObj as! NSManagedObject) 
       } 
       let _ : NSError! = nil 
       do { 
        try context.save() 
       } catch { 
        print("Error in Deletion : \(error)") 
       } 
      } 
     } 
     catch let error as NSError 
     { 
      debugPrint(error) 
     } 
    } 
} 

私は同じ問題がありました。それは私の最後にうまく動作します。

0
EXAMPLE : 

let fetchReq = NSFetchRequest(entityName: "Theater") 
    var array = [Theater]() 
    fetchReq.returnsObjectsAsFaults = false 
    do { 
     let obj = try moc.executeFetchRequest(fetchReq) as! [Theater] 
     for details:Theater in obj{ 


      array.append(details) 
      print(details.movies) 
     } 

    } catch { 
     print("Error in Fetching") 
     return nil 
    } 

あなたは今

let obj:Theater = array[0] as! Theater 
    //Update Record 
    do { 
     try obj.managedObjectContext?.save() 
    } catch { 
     print("Exception") 
    } 

はコアデータに新たなデータを保存するには録音

関連する問題