2017-04-10 6 views
0

Ich habe folgendes Modell:Wie kann ich diese Kerndaten trennen?

enter image description here

Auf jeder Taste neue Werte klicken erhalten würde gespeichert wie:

for member in self.markersArray { 
     var newCoordinate = NSEntityDescription.insertNewObject(forEntityName: "Coordinates", into: managedObjectContext) 
     newCoordinate.setValue(member.latitude, forKey: "latitude") 
     newCoordinate.setValue(member.longitude, forKey: "longitude") 
    } 

    var newCoordinate = NSEntityDescription.insertNewObject(forEntityName: "Coordinates", into: managedObjectContext) 
    newCoordinate.setValue(mapName, forKey: "mapName") 

Wie ich sie so trennen konnte ich auf jeden Datenblock beziehen könnten nach mapName?

Antwort

0

Es gibt ein Design Missverständnis. Ihr Code erstellt markersArray.countCoordinate s (ohne Name) und einen zusätzlichen Coordinate mit einem Namen, aber ohne lat und long.

Es gibt (mindestens) zwei Möglichkeiten:

  • die Karte Name in der Schleife auf alle Koordinaten hinzufügen und die letzte Koordinate weglassen. Ermitteln Sie dann die Koordinaten anhand des Kartennamens.
  • Erstellen Sie eine neue Entität Map mit Attribut name und eine Eins-zu-viele-Beziehung zu Coordinate und löschen Sie das name-Attribut in Coordinate.

Side-Anmerkung: Es ist in Singularform zu nennen Einheiten empfohlen (Coordinate)

+0

Danke. Warum sollte ich die letzte Koordinate in Option 1 weglassen? – konyv12

+0

Noch einmal haben Sie (z. B.) 5 Koordinaten mit lat/long, aber ohne Namen und eine Koordinate mit Namen, aber ohne lat/long. Es gibt keine Beziehung zwischen ihnen. In Option 1 hat jede Koordinate lat/long ** und ** den Namen, so dass die nicht zugehörige einzelne Koordinate veraltet ist. – vadian

Verwandte Themen