2016-06-01 14 views
1

Ich versuche, mehrere Core Data-Beziehungen zu einem Objekt hinzuzufügen. Das ist mein Coredata Tabelle: Core Data TableMehrere Core Data-Beziehungen für ein Objekt swift speichern

Im diesen Code verwenden, um Objekte in die Datenbank hinzuzufügen:

  for data in rawData{ 
       if let itemID = Int(data.1.array![0].string!){ 
        if let seriesID = Int(data.1.array![1].string!){ 
         if let frontPictureId = Int(data.1.array![3].string!){ 
          if let backPictureId = Int(data.1.array![4].string!){ 
           if let itemDescription = data.1.array![5].string{ 
            if let catatalogCodes = data.1.array![6].string{ 
             if let itemName = data.1.array![7].string{ 
              //Retrieve Serie for current stamp 
              var currentSerie: Serie! 
              privateMOC.performBlockAndWait{ 
               let serieFetch = NSFetchRequest(entityName: "Serie") 
               serieFetch.predicate = NSPredicate(format: "seriesID == %d", seriesID) 
               do { 
                let results = try privateMOC.executeFetchRequest(serieFetch) as! [Serie] 
                if results.count > 0 { 
                 currentSerie = results.first 
                } 
               } catch let error as NSError { 
                print("Error: \(error) " + 
                 "description \(error.description)") 
               } 
              } 

              let stamp = NSEntityDescription.insertNewObjectForEntityForName("Stamp", inManagedObjectContext: privateMOC) as! Stamp 

              stamp.itemID = itemID 
              stamp.frontPictureID = frontPictureId 
              stamp.backPictureID = backPictureId 
              stamp.itemDescription = itemDescription 
              stamp.catalogCodes = catatalogCodes 
              stamp.itemName = itemName 
              //Make the series Relationship 
              //TODO: - Add RelationShip 

              arrayOfStamps.append(stamp) 
             } 
            } 
           } 
          } 
         } 
        } 
       } 
      } 


      currentCountry.mutableOrderedSetValueForKey("serie").addObjectsFromArray(arrayOfStamps)//Add Stamp to the database 
      privateMOC.performBlockAndWait(){ 
       do { 
        try privateMOC.save() 
       } catch let error as NSError { 
        print("Could not save \(error), \(error.userInfo)") 
       } 
      } 

Aber was muss auf der Linie kommen, wo es heißt TODO-: In Beziehung? Wenn ich versuche, dies zu verwenden: currentSerie.mutableOrderedSetValueForKey("stamps").addObject(stamp)//Add Stamp to serie Ik erhalten einen Fehler, dass die Typ-Serie, kein mutableOrderdSetValueForKey enthält.

Das Stempelobjekt muss eine Beziehung mit Land und mit der Serie gleichzeitig haben. Ich erstelle die Beziehung mit dem Land-Objekt mit diesem Code: currentCountry.mutableOrderedSetValueForKey("serie").addObjectsFromArray(arrayOfStamps)//Add Stamp to the database

Also muss ich zwei Beziehungen zu den neu hinzugefügten Stempel hinzufügen. Wie mache ich das richtig und effizient?

+0

Mögliches Duplikat von [Saving CoreData zu viele Beziehungen in Swift] (http://stackoverflow.com/questions/25127090/saving-coredata-to-many-relationships-in-swift) – sschale

+0

Nein, weil hier Ich möchte _multiple_ Beziehungen zu einem Objekt hinzufügen, was nicht so funktioniert, wie ich es erwarte. Deshalb stelle ich diese Frage. Ich hoffe, die Klarstellung hat geholfen. – sloeberGJ

Antwort

0

Ich änderte es, so dass ich die Beziehung zu eins festlegen musste. Weg einfacher

Verwandte Themen