Aktualisieren Sie ein Objekt in core data swift 4

Ich habe mehrere Artikel von Arbeitsplätzen in der core-data-Entität, deren jobId -1 ist. Ich brauche zu Holen, alle diese Elemente, und aktualisieren jobId durch die richtige ids, die in meinem Objekt, das übergeben wird, updateMyJobs Methode. Ich habe nicht extrahiert NSManagedObject-Klasse arbeiten auf Kern-Daten (D. H. - ich habe die entity-Klasse-definition)

Hier ist mein code:

func updateMyJobs(jobId: Int){
    managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "DBJobsNearBy")
    fetchRequest.predicate = NSPredicate(format: "jobId = '-1'")
    let result = try? managedObjectContext.fetch(fetchRequest)
    let resultData = result as! [DBJobsNearBy]
    for object in resultData {
        print(object.jobId)
        if object.jobId == -1 {
            object.setValue("\(jobId)", forKey: "jobId")
        }
    }
    do {
        try managedObjectContext.save()
        print("saved!")
    } catch let error as NSError  {
        print("Could not save \(error), \(error.userInfo)")
    }
}

Verbrachte ich einige integer-Wert, und nennen Sie die oben genannten-Methode, um das Element zu aktualisieren, wie dies.

DatabaseHandler.shared.updateMyJobs(jobId: 222)

Fehler: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Inakzeptabel Art von Wert für Attribut: Eigenschaft = "jobId"; gewünschte type = NSNumber; angesichts type = Swift._NSContiguousString; value = 222.'

Ich versuche neue jobId, auf das zugehörige Objekt in der core-data-Entität. Ist es notwendig, zu extrahieren, die Klasse NSManagedObject, oder nicht. Bitte jemand mir helfen, dies zu tun. Danke.

  • Sind Sie sagen, dass die jobId ist ein Schlüssel zu einer getrennte Entität, die mit einer Beziehung zu DBJobsNearBy, und Sie festlegen möchten, dass diese Beziehung? Wenn ja, bitte zeigen Sie Ihre Daten-Modell.
  • Es gibt keine Beziehung zu DBJobsNearBy. Ich habe mehrere jobId holte aus web und möchten, aktualisieren Sie Sie auf coredata jobIds, deren ids -1.
InformationsquelleAutor Sptibo | 2018-02-12
Schreibe einen Kommentar