【问题标题】:How to save data to model coredata如何将数据保存到模型 coredata
【发布时间】:2016-08-13 23:47:17
【问题描述】:

我想在单击按钮时将我的数据保存到核心数据这里是我现在的操作按钮代码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) 但现在唯一的问题是我不知道如何在这里保存是我解析 json 的代码

      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()

                }

            }

        }

所以我有一个名为 rest 的数组,我想在其中获取 tableview 的数据。我想保存每个单元格进入coredata的信息这里是app的截图

因此,当点击确定按钮时,它会将项目保存到 coredata 这是我的代码,以防你需要code

【问题讨论】:

    标签: ios arrays swift uitableview core-data


    【解决方案1】:

    试试这个,适应你的代码。

    在您拥有的部分 (...let app=...) 将其替换为:

     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)
                }
          }
    

    让我知道这是否有效。

    干杯

    【讨论】:

      【解决方案2】:

      这里只是一个示例,当您想将数据保存在 coredata 中时。您必须创建实体/模型以及核心数据元素的所有设置。详情请学习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)")
        }
      }
      

      【讨论】:

      • 那么我将在我的 parseJson() 函数中调用该函数吗?
      • “我想保存每个被点击到 coredata 的单元格的信息,这里是应用程序的屏幕截图”。因此,当单元格点击 tableview 时,将调用 didSelectRowAtIndexPath 方法。您现在要保存哪些信息?购物车对象?
      • 我想保存名称和价格你看到我的代码了吗?我怎样才能从那里保存它
      猜你喜欢
      • 2012-12-09
      • 2011-06-04
      • 2015-07-01
      • 2019-10-29
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-30
      相关资源
      最近更新 更多