Swift - получает ноль в моем элементе, пока я пытаюсь получить доступ к элементу через cellForItem - PullRequest
0 голосов
/ 05 марта 2019

Я получаю ноль в моем UICollectionViewItem, если я пытаюсь получить свой предмет через cellForItem.Но данные показывают в моем UICollectionView.Я отображаю данные в моем UICollectionView через пульт.после reloadData, когда я пытаюсь получить доступ к данным через элемент.он возвращает ноль.

Вот код для извлечения данных с удаленного устройства и перезагрузки Collection View.

    URLSession.shared.dataTask(with: url!) { (data, response, err) in
        guard let data = data else { return }

        do {

            let songs = try JSONDecoder().decode(yt.self, from: data)
            for sng in songs.items {
                if(sng.id.videoId==nil){
                    self.video_arr.append("xVrNFaeMvP8")

                    self.images.append("https://i.ytimg.com/vi/sGIm0-dQd8M/default.jpg")
                }else{
                    self.video_arr.append(sng.id.videoId)
                    self.images.append(sng.snippet.thumbnails.medium.url)
                }
                self.channelTitle.append(sng.snippet.channelTitle)
                self.titlesArr.append(sng.snippet.title!)

            }
            DispatchQueue.main.async() {
                self.collectionView.reloadData()
                self.isAddedToFavourites()
            }

            SVProgressHUD.dismiss()

        } catch let jsonErr {
            print("Error serializing json:", jsonErr)
        }

        }.resume()

и вот мой код, где я получаю свой товар.

func isAddedToFavourites(){
    for i in 0..<collectionView.numberOfItems(inSection: 0) - 1{
        let indexPath = IndexPath(row: i, section: 0)
        let item = collectionView.cellForItem(at: indexPath) as! PlayerCollectionViewCell
        //This is returning nil
       print(item.musicTitle.text!)
    }

что-то не так с моим кодом?

1 Ответ

0 голосов
/ 05 марта 2019

cellForItem (at:) Объект ячейки по соответствующему пути индекса или nil, если ячейка не видна или indexPath находится вне диапазона.

Вывместо этого следует использовать модель данных titlesArr для доступа к данным.

См. UICollectionview cellForItem вернуть nil

...