2017-11-24 6 views
0
func saveName(name: String){ 
    //1 
    let appDelegate = UIApplication.shared.delegate as! AppDelegate 

    let managedContext = appDelegate.managedObjectContext! 
    //2 
    let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:managedContext) 
    //3 
    person.setValue(name, forKey: "name") 
    //4 
    var error: NSError? 
    if !managedContext.save(&error) { 
     print("Could not save \(error!), \(String(describing: error?.userInfo))"); 
    } 
    //5 
    people.append(person) 
} 

Ich kann dieses Programm nicht richtig funktionieren. Ich habe versucht, CoreData zu speichern.Wert vom Typ 'AppDelegate' hat kein Mitglied 'managedObjectContext'

+0

Gibt es in Ihrer 'AppDelegate' Klasse zuzugreifen haben eine Eigenschaft mit dem Namen' managedObjectContext' (wie Ihr Motiv sagt) oder vielleicht 'managedContext' (als Code sagt)? –

+0

es hat persistentContainer und saveContext. Ich sollte diese stattdessen verwenden, oder? – TFLOW9Z1

Antwort

0

In Swift 3, greifen Sie auf das Kontextobjekt wie folgt aus: -

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 
+0

Es sieht aus wie eine Kombination aus // 1 und // 2 Zeilencode, den ich verwendet habe. Lass es mich auf meinem Programm ausprobieren. – TFLOW9Z1

0

Da das verwaltete Objektkontext häufig einen faulen instanziiert Immobilien in AppDelegate

lazy var managedObjectContext : NSManagedObjectContext = { 
    return self.persistentContainer.viewContext 
}() 

Beide entity hinzufügen verwendet wird und managedObjectContext sollen nicht optional sein.

-1

Ihre zweite Zeile in Ihrem Code ändern Sie den verwaltete Objektkontext

let managedContext = appDelegate.persistantContainer.Viewcontext 
+0

Drei ernsthafte Tippfehler in einer Zeile ... – vadian

+0

Sag mir, was schief gelaufen ist – udaykumar40

+0

Bitte, siehst du es nicht? Schon der Syntax Highlighter zeigt dir sofort einen der Fehler. – vadian

Verwandte Themen