2017-10-06 11 views
1

Ich bin wie so ein bestimmtes Attribut name in Kern-Daten zu speichern ..Problem mit Zugriff auf ein Coredata Attribute

//Saving to CoreData 
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
     return 
} 
let managedContext = appDelegate.persistentContainer.viewContext 

let entity = NSEntityDescription.entity(forEntityName: "Category", in: managedContext) 

let category = NSManagedObject(entity: entity!, insertInto: managedContext) 

category.setValue(name, forKeyPath: "theName") 

do { 
try managedContext.save() 
self.mangObjArr.append(category as! Category) 

} catch let error as NSError { 
print("Could not save. \(error), \(error.userInfo)") 
} 

Jetzt möchte ich diese name in einem anderen Viewcontroller bekommen, so dass ich es als ein passieren kann Parameter in einem API-Aufruf. Aber wie kann ich das Namensattribut bekommen, das ich nicht herausfinden kann? Auch ich bin nicht so gut an Swift daher die Frage zu stellen ... :)

Antwort

0

Sie sollten einige gute Tutorials auf Core Data, da dies eine sehr grundlegende Frage ist. Ich glaube nicht, dass du gegoogelt hast, bevor du hier eine Frage gestellt hast. Ich gebe dir die Lösung, aber wiederhole es nicht noch einmal.

let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Category") 
if let fetchedObjects = try? managedContext.fetch(fetchRequest), !fetchedObjects.isEmpty 
{ 
    let category = fetchedObjects.first as? NSManagedObject 
    print(category?.value(forKey: "theName")) 
} 

Links:

https://www.appcoda.com/introduction-to-core-data/

https://www.raywenderlich.com/145809/getting-started-core-data-tutorial

https://code.tutsplus.com/tutorials/core-data-and-swift-managed-objects-and-fetch-requests--cms-25068

+0

Danke, @ PGDev..your Antwort war sehr hilfreich. Nur noch eine Sorge (bitte entschuldigen Sie ... :)). Ich bekomme auch von einer API-Antwort eine 'ID'. Aber diese ID hat kein Attribut im xcdatamodel. Wie kann ich es in der Datenbank speichern? muss ich ein anderes Attribut für diese 'ID' machen ..? Nochmals vielen Dank ... – bws

+0

Sie müssen ein neues Attribut dafür machen. Jeder Wert wird in einer Entität in Core Data gespeichert, die nur einem Attribut entspricht. – PGDev

+0

Ok ... Sie sagen also, wenn ich die ID speichern möchte, wie ich bereits erwähnt habe, muss ich die gesamte in der Frage gespeicherte Methode in coredata schreiben und dann den Abruf durchführen, wie in Ihrer Antwort. .? – bws

Verwandte Themen