我正在尝试将JSON显示到UIImageView和UILabel中

时间:2019-07-11 21:16:44

标签: json swift amazon-web-services uikit

我正在尝试将JSON显示到UIImageView和UILabel中。我的控制台中有JSON,但未将其显示在标签或ImageView上。我没有收到错误,但是使用以下JSON却什么也没显示。

    override func viewDidLoad()
    {
        print(currentUser!)
        super.viewDidLoad()
        loadUser()
        refreshControl?.tintColor = .black
        self.tableView.addSubview(refreshControl!)
    }

    func loadUser()
    {
        // save method of accessing user related info in global var
        guard let firstName = currentUser?["firstName"], let lastName = currentUser?["lastName"], let username = currentUser?["username"], let profileImage = currentUser?["profileImage"] else
        //guard let firstName = currentUser?["firstName"], let lastName = currentUser?["lastName"], let username = currentUser?["username"], let profileImagePath = currentUser?["profileImage"] else
        {

            return
        }

            fullNameLabel.text = "\((firstName as! String).capitalized) \((lastName as! String).capitalized)" // "Bob Michael"
            usernameLabel.text = "@\(username as! String)"

            Helper().downloadImage(from: profileImage as! String, showIn: self.ProfileImageView, orShow: "")


    }

    // allows us to download the image from certain url string
    func downloadImage(from path: String, showIn imageView: UIImageView, orShow placeholder: String) {

        // if avaPath string is having a valid url, IT'S NOT EMPTY (e.g. if ava isn't assigned, than in DB the link is stored as blank string)
        if String(describing: path).isEmpty == false {
            DispatchQueue.main.async {

                // converting url string to the valid URL
                if let url = URL(string: path) {

                    // downloading all data from the URL
                    guard let data = try? Data(contentsOf: url) else {
                        imageView.image = UIImage(named: placeholder)
                        return
                    }

                    // converting donwloaded data to the image
                    guard let image = UIImage(data: data) else {
                        imageView.image = UIImage(named: placeholder)
                        return
                    }

                    // assigning image to the imageView
                    imageView.image = image

                }
            }
        }
    }

0 个答案:

没有答案