如何将数据从数组复制到核心数据实体

时间:2017-07-17 15:54:57

标签: ios json core-data swift3 magicalrecord

我从网络电话中获取JSOn并将其解析为:

Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default)
            .responseJSON { response in

                if let status = response.response?.statusCode {
                    switch(status){
                    case 200:

                        self.allResponse = response.result.value as! NSDictionary

                        if let categories = self.allResponse.value(forKey: "categories") as? [[String: AnyObject]] {
                            for category in categories {
                                self.categories.append(Category(dict: category))
                            }
                        }

                        self.collectionView.reloadData()
                    default:
                        print("error with response status: \(status)")
                    }
                }
        }

代码获取数据并成功解析。现在我想将这些数据保存在我已经制作的CoreData实体中。我是var categories = [Category]()中的所有类别,我想使用魔法记录将其复制到核心数据的实体中。我之前已经在CoreData上保存了值,但它们是一个接一个的。现在,我需要存储在coredata中的数组中的所有数据堆栈。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以保存这样的数据。

 func saveToDataBase( _ saveData:[Category]){
        for data1 in data{

            let request:NSFetchRequest<Category> = Category.fetchRequest()
            request.predicate = NSPredicate(format: "id == %@", (id to check previously save or not)

            do {
                let count = try managedObjectcontext.count(for: request)

                if count == 0 {
                    // save data according to your requirement.
                    print(data1)
                }else{

                    //if anything you want to update then wright here
                }

            }catch{
                let error  = error as NSError
                print("\(error)")
            }
        }
    }

我已经回答了这个问题。希望它会对你有所帮助。如果你想在这里看到coredata经理,我已经sample project