Добавление основного объекта данных в массив - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу добавить объект json, который я сохраняю в основных данных, в массив, но он не работает с append.как я могу добавить объект основных данных в массив.

это мой массив

private var videos = [Video]()

это моя функция для извлечения API и сохранения JSON в основных данных

let params = ["part": "snippet", "q": "tausiyah \(name)", "key": "AIzaSyC2mn0PTL8JmSWEthvksdJLvsnwo5Tu9BA"]

        APIServices.shared.fetchData(url: APIServices.youtubeBaseURL, params: params, of: Item.self) { (items) in
            items.forEach({ (item) in
                print(item.id.videoId)
                let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
                privateContext.parent = CoreDataManager.shared.persistenceContainer.viewContext

                let video = Video(context: privateContext)
                video.title = item.snippet.title
                video.videoId = item.id.videoId

                do {
                    try privateContext.save()
                    try privateContext.parent?.save()
                    self.videos.append(video) // this is I can't append core data into my array
                } catch let saveErr {
                    print("Failed to save json data:", saveErr)
                }
            })
            DispatchQueue.main.async {
                self.collectionView.reloadData()
            }
        }

1 Ответ

0 голосов
/ 18 декабря 2018

попробуйте это и посмотрите результат:

private var videos = [Video]() {
   didSet {
      print("AAA: \(videos.last().title)")
      DispatchQueue.main.async {
          self.collectionView.reloadData()
      }
   }
}

убедитесь, что вы установили numberOfItems & Section для вас array.count

...