Ich versuche CoreData zu verwenden, um Markierungen zu speichern und abzurufen, die ein Benutzer in Google Maps mithilfe eines Autocomplete-Widgets markiert. Aber ich bekomme immer eine 'libC++ abi.dylib: mit nicht abgefangener Ausnahme vom Typ NSException beenden' Fehler und bin mir nicht sicher, warum oder was das bedeutet? Es passiert, wenn ich versuche, die Objekte in Core Data zu speichern. HierGoogle speichert Objekte in Core Data - Endung mit nicht abgefangener Ausnahme vom Typ NSException error
ist der entsprechende Code:
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
self.place = place
let camera = GMSCameraPosition.camera(withLatitude: place.coordinate.latitude, longitude: place.coordinate.longitude, zoom: 15.0)
self.vwGMap.camera = camera
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(place.coordinate.latitude, place.coordinate.longitude)
marker.title = place.name
marker.snippet = place.formattedAddress
marker.map = self.vwGMap
marker.icon = GMSMarker.markerImage(with: UIColor.blue)
marker.tracksViewChanges = true
self.dismiss(animated: true, completion: nil)
print("Place name: ", place.name)
print("Place address: ", place.formattedAddress)
print("Place placeID: ", place.placeID)
print("Place attributions: ", place.attributions)
print("Place Coordinate:", place.coordinate)
//The printing only happens in the terminal
let newPlaceName = place.name
self.newPlaceName = place.name
let newPlaceAddress = place.formattedAddress
self.newPlaceAddress = place.formattedAddress!
let newPlacePlaceID = place.placeID
self.newPlacePlaceID = place.placeID
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let newPlace = NSEntityDescription.insertNewObject(forEntityName: "StoredPlace", into: context)
newPlace.setValue(newPlaceName, forKeyPath: "name")
newPlace.setValue(newPlaceAddress, forKeyPath: "address")
newPlace.setValue(newPlacePlaceID
, forKeyPath: "placeID")
do
{
try context.save()
print("SAVED")
}
catch
{
//PROCESS ERROR
}
}
vielleicht sollte ich das die lassen AppDelegate etc in viewDidLoad werden setzen, aber ich am Ende den gleichen fatalen Fehler.
Ich habe Name, Adresse, placeID als Attribute als Typ 'String' in der StoredPlace-Entität festgelegt.
mehr über den Fehler: Terminating app aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: '+ entityForName: nil ist keine juristische NSManagedObjectContext Parameter für Entitätsname Suche 'StoredPlace'' *** ersten Wurf Call-Stack:
Was bedeutet dieser Fehler und wie komme ich damit klar?
Dies ist der ViewController. Ich werde den Beitrag aktualisieren, um die AppDelegate-Methoden anzuzeigen. Ich benutze die neueste Version von Xcode und Swift –
oh mein Gott, danke für die Frage, dass, da es sich herausstellt, ich vergessen habe, den Namen des Containers zu meinem xcdatamodel zu ändern, seit ich es nach der Erstellung .... –