Не удалось привести значение типа NSNull к NSString в Swift при использовании JSON для анализа данных? - PullRequest
0 голосов
/ 16 апреля 2020

Я использую JSON для анализа данных и пытаюсь получить песни, изображения и previewURL из Spotify. Я думаю, что это не нравится, что я пытаюсь добавить это как строку. Но previewURL - это строка. Я также включил мою структуру, которая находится за пределами контроллера представления.

 struct post {
let mainImage : UIImage!
let name : String!
let previewURl : String!
}

 class GuestPartyViewController: UITableViewController,UISearchBarDelegate {

 lazy var searchURL = "https://api.spotify.com/v1/search?q=Kanye%20West&type=track&access_token=\(spotifyAccessToken!)"
typealias JSONStandard = [String : AnyObject]
var posts = [post]()

   func parseData(JSONData: Data){
    do{
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let tracks = readableJSON["tracks"] as? JSONStandard{
            if let items = tracks["items"] as? [JSONStandard] {
                for i in 0..<items.count{
                    let item = items[i]
                    let name = item["name"] as! String
                    print(item)
                    let previewURL = item["preview_url"] as! String //Here I get the Thread 1: signal SIGABRT error. 
                    if let album = item["album"] as? JSONStandard{
                        if let images = album["images"] as? [JSONStandard]{
                            let imageData = images[0]
                            let mainImageUrl = URL(string: imageData["url"] as! String)
                            let mainImageData = NSData(contentsOf: mainImageUrl!)
                            let mainImage = UIImage(data: mainImageData as! Data)
                            posts.append(post.init(mainImage: mainImage, name: name,previewURl: previewURL)) //I think that it doesn't like that I am casting it in as a string here. 
                            self.tableView.reloadData()

                        }

                    }
                }
            }
        }
    }
    catch{
    print(error)
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...