2016-08-13 4 views
1

Ich möchte meine Daten zu Kerndaten speichern, wenn eine Schaltfläche hier geklickt wird, ist meine Action-Taste Code jetzt let app = UIApplication.sharedApplication().delegate as! AppDelegate let context = app.managedObjectContext let entity = NSEntityDescription.entityForName("Cart", inManagedObjectContext: context) let cart = Cart(entity: entity!, insertIntoManagedObjectContext: context) aber das einzige Problem ist jetzt, dass ich nicht, wie hier zu speichern ist mein Code zu analysieren jsonSo speichern Sie Daten in Model Coredata

 Alamofire.request(.GET, url!, headers: headers).responseJSON { (response) in 
     let result = response.result 

     if response.result.isSuccess{ 
      let jsonObj = JSON(result.value!) 
      if let x = jsonObj["Items"].array { 
       x.forEach 
        { 
         if let uw = ($0["name"]).string{ 
          print(uw) 
          let qw = ($0["image"]).string 
          if let rw = ($0["price"]).int{ 
           if let hu = ($0["id"]).int{ 
           print(hu) 
           let foo = Rest(name: uw, imageUrl: qw!, price: "₦\(rw)") 
            self.rest.append(foo) 

           } 


          } 

         } 

       } 

       dispatch_async(dispatch_get_main_queue()) { 
        self.tableView.reloadData() 
        actInd.stopAnimating() 

       } 

      } 

     } 

So habe ich ein Array namens Rest, wo ich Daten für die Tabellenansicht erhalten möchte. Ich möchte Informationen jeder Zelle in Coredata ist ein Screenshot der App Screenshot

Also hier angezapft sparen, wenn der sichere Taste abgegriffen es das Element spart hier Coredata ist mein Code einhüllen Sie nee code

Antwort

1

Nur ein Beispiel, wenn Sie Ihre Daten in Coredata speichern möchten. Sie müssen Entity/Model und alle Einstellungen für Core-Datenelemente erstellen. Für Details bitte studieren https://www.raywenderlich.com/115695/getting-started-with-core-data-tutorial

func saveName(name: String) { 
    //1 
    let appDelegate = 
    UIApplication.sharedApplication().delegate as! AppDelegate 

    let managedContext = appDelegate.managedObjectContext 

    //2 
    let entity = NSEntityDescription.entityForName("Person", 
    inManagedObjectContext:managedContext) 

    let person = NSManagedObject(entity: entity!, 
    insertIntoManagedObjectContext: managedContext) 

    //3 
    person.setValue(name, forKey: "name") 

    //4 
    do { 
    try managedContext.save() 
    //5 
    people.append(person) 
    } catch let error as NSError { 
     print("Could not save \(error), \(error.userInfo)") 
    } 
} 
+0

Also werde ich die Funktion in meiner parseJson() Funktion aufrufen? – lordxxx

+0

"Ich möchte Informationen von jeder Zelle in Coredata angezapft speichern hier ist ein Screenshot der App". Also, wenn Zelle tapped TableView didSelectRowAtIndexPath-Methode wird aufgerufen werden. Welche Imformation möchten Sie jetzt speichern? Einkaufswagenobjekt? – Sofeda

+0

Ich möchte Name und Preis speichern, hast du meinen Code gesehen? Wie kann ich es von dort speichern – lordxxx

2

Versuchen Sie dies, angepasst an Ihren Code.

In dem Bereich, den Sie (... lassen app = ...) haben ersetzen diese durch:

let app2 = UIApplication.sharedApplication().delegate as! UIApplicationDelegate 
     if let context2 = app2.managedObjectContext { 
      let cart2 = NSEntityDescription.insertNewObjectForEntityForName("Cart", inManagedObjectContext: context2) as! Cart 
      cart2.name = self.res.name 
      cart2.price = self.res.price 
      cart2.url = self.res.imageUrl 
      cart2.id = "" 
      // Perform a save operation 
      do { 
       try context2?.save() 
      } catch { 
       let saveError = error as NSError 
       print(saveError) 
      } 
     } 

Lassen Sie mich wissen, ob das funktioniert.

Prost

+0

Ja danke, ich habe es zur Arbeit – lordxxx